【发布时间】:2011-09-09 03:13:07
【问题描述】:
如何在 c++ 中重载 () 和 [] 运算符?用一些代码证明。 不会影响编程语言的完整性吗?
【问题讨论】:
-
使用哪种语言? OOP 和 C++ 不是同义词。
-
-1 对于“你会如何...举一些例子。”这个问题有很好的潜力(例如最后一点和“陷阱”),但事实并非如此。一个教程——不是这样——是你首先需要的。
-
@vivek - 查看右侧的相关问题。我相信你能找到一些。
-
我强烈建议不要在除了小的个人代码实验之外的任何东西中重载 '()' 运算符。它很容易与构造函数语法混淆,使使用它的代码难以维护/调试。
-
@Darcy :不要失礼,但你不能再错了。
operator()是函数对象(又名函子)的基础,它与迭代器一起是与 C++ 标准库本身交互的基础。在现代 C++ 代码中,operator()是用户代码中应该最重载的运算符(operator=除外)。
标签: c++ oop overloading operator-keyword