Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: GeorgeIV   (22.04.2009 в 13:03)
Вот такой вариант работает логично, не изменяя операнды
#include "stdio.h"

class vectorn
{
  protectedint dim;
  public:
  vectorn();
  vectorn operator+(const vectorn&);
  vectorn &operator=(const vectorn&);
};

vectorn::vectorn()
{
  dim=4;
}

vectorn vectorn::operator +(const vectorn &A)

vectorn B;
    B.dim = this->dim+A.dim;
return B;
}

vectorn& vectorn::operator=( const vectorn& A)
{
  if(this == &A) return *this;
  dim=A.dim;
  return *this;
}


class vector:public vectorn
{
  public:
    vector();
    vector operator+(const vector &A);
    vector &operator=(const vector&);
};

vector::vector()
{
   dim=3;
}

vector vector::operator +(const vector &A)

vector B;
B.dim = this->dim + A.dim;
return B;
}

vector& vector::operator=( const vector& A)
{
  if(this == &A) return *this;
  dim=A.dim;
  return *this;
}

int main()
{
  vector C,B,A;

  C = B + A;
  return 0;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: