У меня есть какая-то проблема здесь с c ++ - у меня есть два класса: class vec
и class vecD : public vec
класс vec перегружает практически любой оператор - некоторые из них (как + =) вернуть объект самого класса по понятным причинам.Теперь мои вопросы: возможно ли повторно использовать перегруженные функции vec для vecD, но вместо этого вернуть объект vecD?Я имею в виду наверняка, что можно определить все функции виртуально и переопределить их заново ... но, вы знаете, должен быть какой-то более плавный способ?
РЕДАКТИРОВАТЬ: Извините, конечно код: Возможно ли использовать наследование, как это?Начиная с шаблонного класса?Могу ли я использовать их операторы из класса родителей?
template<typename TYPE>
class vec{
public:
TYPE *val;
int dimension;
public:
vec();
~vec();
TYPE operator[](int right);
virtual vec<TYPE>& operator=( TYPE right );
virtual vec<TYPE>& operator=( vec<TYPE> right );
virtual vec<TYPE> operator+( TYPE right );
virtual vec<TYPE> operator-( TYPE right );
[etc]
};
class vecD : public vec<long>{
public:
long *X;
long *Y;
long *Z;
long *Xmax;
long *Ymax;
long *Zmax;
public:
vecD();
~vecD();
long getAddress();
long setAddress( long _X, long _Y, long _Z );
TYPE operator[](int right);
virtual vecD<long>& operator=( long right );
virtual vecD<long>& operator=( vecD<long> right );
virtual vecD<long>& operator=( vec<long> right );
virtual vecD<long> operator+=( vecD<long> right );
[etc]
};