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

Дружественная перегрузка оператора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамический глобальный объект. http://www.cyberforum.ru/cpp-beginners/thread342044.html
Здравствуйте. Пишу Auto-Clicker . Текущая версия содержит заранее созданный массив объектов класса "TClickBase" в каждом объекте хранятся координаты экрана, интервал нажатия и прочие процедуры и...
C++ C: проблема с использованием сторонней библиотеки Всем привет! Помогите решить проблему. Нужно использовать стороннюю библиотеку VSPE API (эмулятор COM-порта). Свою софтину пишу на Си. В комплекте с самой либой есть хидер VSPE_API.h. Делаю точно... http://www.cyberforum.ru/cpp-beginners/thread341979.html
Работа с длинными числами C++
Мне нужно прочитать из файла 22-х значные целые числа для количественного сравнения. int и long int не сохраняют полную длину числа. Какой тип можно использовать?
C++ pdf reader своими руками
Прошу помощи. Нужна любая информация, которая поможет написать простейший pdf reader на C++, примеры, советы, что угодно, что может помочь.
C++ Игра Жизнь http://www.cyberforum.ru/cpp-beginners/thread341953.html
Написал вот такую реализацию: #include "stdafx.h" #include "iostream" #include "clocale" using namespace std; int ZeroGenerationX={1,2,3,4,5,6,7,8,9,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9...
C++ Копирование файлов Народ, дайте пожалуйста исходник копирования файлов по принципу "открыть файл1 -> считать в буфер содержимое -> открыть файл2 -> заменить содержимое -> сохранить файл2" очень нужно. зашиваюсь подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
15.08.2011, 13:13
В вашем случаи, я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
class A  
{
private:
        int a;
public:
        A(int a=0)
        {
                this->a=a;
        }
        void Show()
        {
                cout<<a<<endl;;
        }
        friend A operator+(const A &, const A &);
};
 
A operator+(const A & lhs, const A & rhs)
{
    return A(lhs.a + rhs.a);
}
 
void main () 
{
        A a(10);
        A b(20);
        A c=a+b;
        c.Show();
        c=a+30;
        c.Show();
        //Как правильно перегрузить данный пример
        c=40+a;
        c.Show();
}
Добавлено через 20 минут
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Для начала opertor+ должен возвращать просто A, а вы возвращаете по ссылке временный обьект, который после выхода из operator+ уничтожается, и вы получаете ссылку на не существующий обьект.
Ваш код откомпилировал(без 36'ой строки), он работает не пойму почему, похоже я ошибся. Хотя... компилятор выдает предупреждения:
warning C4172: returning address of local variable or temporary
warning C4172: returning address of local variable or temporary
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru