我是一名中級C++用戶,遇到以下情況。下面顯示的類定義可以用g ++編譯器編譯。但我不能把手指放在整個語法的意義上。
我的猜測是功能operator int()
返回一個int
類型。隱式轉換運算符重載語法
而且,我無法弄清楚如何在main()
class A
{
public:
A(int n) { _num = n; } //constructor
operator int();
private:
int _num;
};
A::operator int() // Is this equivalent to "int A::operator()" ??
{
return _num;
}
int main()
{
int x = 10;
A objA(x); //creating & initializing
// how to use operator() ?
// int ret = objA(); // compiler error when uncommented
return 0;
}
任何幫助將不勝感激使用重載operator()
。
重載'運算符()'?什麼重載'operator()'?你的代碼沒有任何重載的'operator()'。這就是爲什麼你不能使用它。 – AnT 2010-09-03 06:53:48
是的。我非常誤會關鍵字操作符把我帶到其他地方。 – vthulhu 2010-09-03 07:15:12
[此C++語法的含義是什麼以及它爲什麼可以工作?]的可能的重複(http://stackoverflow.com/questions/3632746/what-does-this-c-syntax-mean-and-why-does-it工作) – sbi 2010-09-03 07:47:22