C++ 运算符重载

——运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。C++允许将运算符扩展到用户自定义的类型(如:类对象的相加)

使用运算符函数:

returntype operator op ( argument-list );
  • 例如classtype operator *(int a)、classtype operator +(classtype &ct)
  • op必须是有效的C++运算符
  • 不要返回指向局部变量或临时对象的引用。函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据

重载限制:

  1. 重载后的运算符必须至少有一个操作数是用户定义的类型,这样防止用户为标准类型重载运算符
  2. 使用运算符时不能违反运算符原来的句法规则(如一元运算符和二元运算符等的参数数目不能变,参数位置固定),不能修改运算符的优先级
  3. 不能创建新运算符、遵循“明智”的限制(如不把*重载成交换对象的数据成员)
  4. 不能重载以下运算符
    • sizeof
    • .
    • . *
    • ::
    • ?: 
    • typeid
    • const_cast
    • dynamic_cast
    • reinterpret_cast
    • static_cast
  5. 大多数运算符都可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载:
    • =    赋值运算符
    • ()    函数调用运算符
    • []    下标运算符
    • ->    通过指针访问类成员的运算符

原文链接: https://www.cnblogs.com/suui90/p/13084130.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ 运算符重载

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/354140

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午8:26
下一篇 2023年3月2日 上午8:26

相关推荐