Как наследовать перегруженный оператор + ()?
Например, у меня есть два класса:
class Bin : public Number<2, 256>
{
public:
Bin(const char* number = NULL) :
Number(number)
{}
};
и
template <unsigned int BASE, unsigned int ORDER>
class Number
{
private:
...
public:
Number(const char* number = NULL) {
...
}
const Number& operator +=(const Number& number) {
...
}
Number operator +(const Number& number) const {
Number result = *this;
return result += number;
}
};
Оператор + () возвращаетЧисло.Но я хочу сделать:
Bin firstNum("101010111010");
Bin secondNum("1101011101");
Bin result = firstNum + secondNum;
Тип (firstNum + secondNum) - Number <2, 256>, а не Bin.Должен ли я перегружать + () в каждом наследнике?