zoukankan      html  css  js  c++  java
  • 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. 大多数运算符都可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载:
      • =    赋值运算符
      • ()    函数调用运算符
      • []    下标运算符
      • ->    通过指针访问类成员的运算符
  • 相关阅读:
    python正则表达式
    装饰器和生成器和迭代器
    进一步认识函数
    python:关于函数的初认识
    python的 随手记----字符编码与转码
    python:元祖与字典与集合的粗浅认识
    python:模块导入之浅认识
    java socket编程
    Spring框架下的单元测试方法
    ModelDriven机制及其运用
  • 原文地址:https://www.cnblogs.com/suui90/p/13084130.html
Copyright © 2011-2022 走看看