在 c++ 中重载 (),[] 运算符
如何在 C++ 中重载 () 和 [] 运算符?用一些代码来证明。 不会影响编程语言的完整性吗?
How would you overload the () and [] operators in c++? Justify with some code.
Won't it affect the integrity of the programming language?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它不会仅仅因为只能对用户定义的类型执行运算符重载而影响编程语言的完整性。在 C++ 中不可能重载内置类型的运算符。您无法使用数据指针(也涵盖数组)更改
[]
的行为。您无法使用函数指针更改()
的行为。换句话说,C++的核心语言特性不能被重载。It can't affect integrity of the programming language simply because operator overloading can be performed for user-defined types only. It is impossible to overload operators for built-in types in C++. You cannot change the behavior of
[]
with data pointers (that covers the arrays as well). You cannot change the behavior of()
with function pointers. In other words, core language features of C++ cannot be overloaded.这是一个例子:
Here's an example: