對不起,如果這個問題得到報道,但我似乎無法輕鬆地在網上找到解決方案。如果我重寫operator()()它定義了什麼行爲?operator()()定義了什麼?
5
A
回答
8
operator()
是函數調用操作符,即可以使用相應類型的對象作爲函數對象。第二組圓括號包含空的參數列表(通常情況下)。例如:
struct foo {
int operator()() { return 17; };
};
int main() {
foo f;
return f(); // use object like a function
}
上面的例子只是顯示了操作符是如何聲明和調用的。一個現實的用法可能會訪問運算符中的成員變量。函數對象在標準C++庫中的許多地方被用作定製點。使用對象而不是函數指針的優點是函數對象可以附加數據。
相關問題
- 1. C++:爲什麼'operator + ='定義了字符串而不是'operator +'?
- 2. 方法定義中的operator +做什麼?
- 3. unary_function爲什麼不定義operator()?
- 4. 這個operator()語法做了什麼?
- 5. *這裏定義了什麼?
- 6. 爲什麼定義operator +來調用operator + =而不是其他方法更有效?
- 7. python operator = - 做什麼?
- 8. 什麼是「:: operator new」和「:: operator delete」?
- 9. operator ++()和operator ++(int)有什麼區別?
- 10. operator @在python中?什麼?
- 11. C++:這個operator ^是什麼?
- 12. 叫什麼「operator <<」?
- 13. 爲什麼重載operator()?
- 14. 這段代碼定義了什麼類?
- 15. $ scope.variable.SubDomainId在角度中定義了什麼?
- 16. 爲什麼在models.py中定義了get_absolute_url()?
- 17. C#:SHDocVw.WebBrowser_V1定義了什麼組合?
- 18. 這個宏定義了什麼?
- 19. 這個數組定義做了什麼?
- 20. 爲什麼GTK +定義了TRUE和FALSE?
- 21. 什麼定義了「活動」線程?
- 22. 爲什麼PCTSTR未定義,但定義了LPCTSTR?
- 23. 什麼定義了magento中的「自定義主題」?
- 24. 的std ::可選的operator *()和operator - >() - 未定義的行爲
- 25. 使用operator new和operator delete自定義內存池/分配器
- 26. 在C++中重載operator new和operator new []有什麼區別?
- 27. :: operator new []()與:: operator new()不同的方式是什麼?
- 28. 爲什麼不是vector :: operator []實現類似於map :: operator []?
- 29. 爲什麼我會重載operator new或operator delete?
- 30. mysql BETWEEN OPERATOR和microsoft sql(MDB)有什麼區別BETWEEN OPERATOR
這是函數調用操作符。你可能會發現這很有用:http://stackoverflow.com/questions/4421706/operator-overloading – chris