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

Тема в разделе "Общие вопросы по С и С++", создана пользователем adam, 12 фев 2010.

  1. adam

    adam Гость

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

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

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

    Код:

    Код (Text):
    # 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;
    }
     
  2. Sekt

    Sekt Гость

    Код (Text):
    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;
    }
    Проверте работает ли
     
  3. adam

    adam Гость

    Cпасибо Sekt! Работает ;)

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

    с уважением
     
Загрузка...

Поделиться этой страницей