C *运算符是否已经超载?

C *运算符是否已经超载?,第1张

概述我的C老师认为标准C中的*运算符“已经重载”,因为它可以意味着依赖于上下文的间接或乘法.他从C Primer Plus获得了这一点,其中指出: Actually, many C++ (and C) operators already are overloaded. For example, the * operator, when applied to an address, yields the 我的C老师认为标准C中的*运算符“已经重载”,因为它可以意味着依赖于上下文的间接或乘法.他从C Primer Plus获得了这一点,其中指出:

Actually,many C++ (and C) operators already are overloaded. For example,the * operator,when applIEd to an address,yIElds the value stored at that address. But applying * to two numbers yIElds the product of the values. C++ uses the number and type of operands to decIDe which action to take. (pg 502,5th ed)

至少另外一本教科书说得很一样.据我所知,这是不正确的;一元*是与二进制*不同的运算符,编译器消除它们的机制与运算符重载无关.

谁是对的

解决方法 两者都是正确的,因为问题取决于上下文和重载一词的含义.

“重载”可以具有“同一符号,不同含义”的常用含义,并允许使用包括间接和乘法的“*”以及任何用户定义的行为.

“重载”可以用于C的官方运算符重载功能,在这种情况下,间接和乘法确实是不同的.

附录:请参阅下面史蒂夫的评论,关于“令牌超载”的“令牌重载”.

总结

以上是内存溢出为你收集整理的C *运算符是否已经超载?全部内容,希望文章能够帮你解决C *运算符是否已经超载?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1253919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存