Перезагрузка операторов

  • Автор темы Автор темы adam
  • Дата начала Дата начала
A

adam

Здраствуйте! Помогите , пожалуйста , решить задачу.

Задача:
Написать такой класс А, чтобы данный фрагмент кода компилировался и работал.

А a1;
A a2=a1+2+A(3);

Код:

Код:
# include <iostream>

using namespace std;

class A{
private:
int x;
public:
A():x(0){};//Constructor
A(int y):x(y){};
A(const A & y) //Copy constructor
{
x=y.x;
return *this;
}
A operator+(A y) const;

};

A A::operator+(A y) const{
return A(x+y.x); 
}

int main()

{
A a1;
A a2=a1+2+A(3);
return 0;
}
 
Код:
class cl
{
int x;
public:
cl();
cl(int a);
~cl(){};
cl operator+(cl obj);
cl operator=(cl obj);
void see();
};
cl::cl():x(0)
{
}
cl::cl(int a)
{
x=a;
}
cl cl::operator=(cl obj)
{
x=obj.x;
return *this;
}
cl cl::operator +(cl obj)
{
cl temp;
temp.x=x+obj.x;
return temp;
}
void cl::see()
{
printf("%d",x);
}
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cl x(1),y(2),a;
cl z;
z=a+2+cl(3);
z.see();
_getch();
return 0;
}
Проверте работает ли
 
Cпасибо Sekt! Работает ;)

Ничего нет реального и вечного, кроме доброты, сердечной, человеческой доброты.
Всё остальное преходяще, как сон. Т. Драйзер

с уважением
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!