-3
嗨,我特林創造這樣的基本數據類型的包裝類,但我被困在這個問題上:運營商在純虛類重載
當我嘗試創建界面,能夠使用基因多態性與後代
編輯
我越來越
function returning abstract class "Var" is not allowed:
function "Var::operator+" is a pure virtual
function function "Var::operator-" is a pure virtual function
function "Var::operator*" is a pure virtual function
function "Var::operator/" is a pure virtual function
這裏是我的代碼
class Var
{
public:
Var() { }
virtual Var operator+(Var b) = 0;
virtual Var operator-(Var b) = 0;
virtual Var operator*(Var b) = 0;
virtual Var operator/(Var b) = 0;
};
class Decimal : public Var
{
public:
Decimal(double a) { value = a; }
Decimal() : Decimal(0) { };
virtual Decimal operator+(Decimal b)
{
return value + b.value;
}
virtual Decimal operator-(Decimal b)
{
return value - b.value;
}
virtual Decimal operator*(Decimal b)
{
return value * b.value;
}
virtual Decimal operator/(Decimal b)
{
return value/b.value;
}
Decimal operator=(double val)
{
value = val;
}
private:
double value;
};
我的問題的任何解決方案?
「噸的錯誤」沒有幫助你想幫助你的人。 – chris
爲了覆蓋基類的函數,成員函數必須完全匹配參數列表並且具有協變返回類型。 – dyp
此外,'value + b.value'等等產生一個'Var',但是你的返回類型(當前)是一個'Decimal',所以必須有一個從'Var'到'Decimal'的轉換添加一個是一個相當糟糕的主意)。 – dyp