我有一個代碼運營商T(){} - 不工作
class smallDOUBLE;
class smallINT
{
private:
int val;
public:
smallINT():val(0){}
smallINT(int i):val(i){}
operator smallDOUBLE() {return val;}
};
class smallDOUBLE
{
private:
double val;
public:
smallDOUBLE():val(0){}
smallDOUBLE(double i):val(i){}
operator smallINT() { return val;}
};
int main()
{
smallINT int1(10);
smallDOUBLE DBL1(123.22);
smallINT int2 = DBL1;
smallDOUBLE DBL2 = int1;
}
這裏smallINT int2 = DBL1;
的主要工作正常,但smallDOUBLE DBL2 = int1;
拋出錯誤說
返回類型smallDOUBLE是不完整的
編譯期間。
爲什麼operator smallINT() { return val;}
工作
而operator smallDOUBLE() {return val;}
不?
上面的代碼,如果放在一個cpp文件中,不會在main中編譯失敗。它確實在其他地方。請張貼實際演示您的問題的代碼,幷包含錯誤**和**錯誤發生的行。 – Yakk 2014-11-06 13:02:31
請注意,第一個錯誤是在您的運營商。 main中的錯誤是不相關的(並且由操作員中的錯誤引起)。第一個之後的錯誤很少有用。 – Yakk 2014-11-06 13:29:35