Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

правильная перегрузка операторов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заголовочный файл и функции до определения http://www.cyberforum.ru/cpp-beginners/thread831085.html
Нужна небольшая помощь. Делаю лабораторную и столкнулся в небольшой проблемой. Задание : // Напишите функцию вычисления произведения двух целых чисел. Перегрузите функцию для работы с тремя и...
C++ Вывод рандомных данных в классе из текстового файла Хочу вывести рандомные данные из текстового файла по одному. Но не знаю как. Подскажите. Код: #pragma once #include <iostream> #include <fstream> #include <string.h> using namespace std; ... http://www.cyberforum.ru/cpp-beginners/thread831071.html
Сортировка указателей в массиве C++
Выполните сортировку данных по алфавиту (по фамилии) - причем сортировать потребуется только указатели в массиве. Выведите отсортированнный массив. #include <iostream> #include <stdio.h>...
C++ Микрофон
Можно ли работать с микрофоном как с файлом, точнее открыть как файл и считывать все данные? Если можно, то как? А если нельзя, то какая лучшая библиотека для получения спектра с микрофона?
C++ Проверка массива char на равенство с таким же массивом http://www.cyberforum.ru/cpp-beginners/thread831028.html
#include <iostream> using namespace std; int main() { char chArr={"4 8"}; char chCode={"4 8"}; if (chCode==chArr) cout<<"Succes!"; else coutl<<"\a";
C++ Произведение чисел в массиве между двумя первыми отрицательными элементами Одномерный массив, задается рандомно, надо найти произведение чисел между первым и вторым отрицательным числом. Вот то, что у меня получилось... #include<iostream> #include<time.h>... подробнее

Показать сообщение отдельно
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
08.04.2013, 01:58
В моем коде запись c=a+b;(где c,a,b-переменные типа матрицы) работать не будет, потому что оператор + возвращает значение,а оператор = принимает ссылку.
Как избежать этой проблемы?
Как это не будет работать? с=a+b можно записать в виде c.operator=(operator+(a+b)); это если б ты глобально operator+ перегрузил, а у тебя по коду запишется c.operator=(a.operator+(b)), что считай тоже самое. a.operator+(b) вернет копию нового объекта, который попадет по ссылке в функцию operator=(), то есть объекту с присвоится значение объекта третьего который вернет функция operator+(), и который просто передался по ссылке.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru