首页 > 编程语言 >C++ | 运算符重载

C++ | 运算符重载

时间:2023-07-31 18:45:58浏览次数:59  
标签:const 函数 C++ 运算符 operator Time 重载

运算符重载

  • 在类中的函数进行重载(成员函数)

    运算符重载用于重新定义运算符的作用,使用函数名称 operatorOP作为函数名,其中OP为具体的运算符(如operator+

    class Time{
        Time operator+(const Time &t);
    };
    Time a, b;
    Time c = a + b;
    

    在成员函数中重载的运算符,如+ - 等,默认左边的操作数为当前对象,右边的操作数为函数参数。如上面代码中,a+b等价于a.operator+(b)

    而如果使用非成员函数重载+,则需要定义成operator+(const Time &a, const Time &b)

  • 大多数运算符也可以在类之外的函数重载,但下列运算符只能在成员函数中进行重载:

    • = :赋值运算符

    • ():函数调用运算符

    • []:下标运算符

    • ->:通过指针访问类成员的运算符

标签:const,函数,C++,运算符,operator,Time,重载
From: https://www.cnblogs.com/C111111/p/17594200.html

相关文章

  • C++初始化列表时,形参和实参名可以一样,编译器可以识别
    在这里初始化列表直接用age(age)即可,用this->age(age)反而会出错,C++不允许在成员初始化列表中使用this关键字来初始化类成员classPerson{public:Person(intage):age(age){}//Initializethe'age'memberdirectlyinthememberinitializerlistinta......
  • UVM:3.4.2 重载打印信息的严重性
    1.所有warning替换成error:2.只对某个特定id起作用:3.重载严重性是没有递归函数的。4.可以在命令行中实现:<simcommand>+uvm_set_severity=<comp>,<id>,<currentseverity>,<new_severity><simcommand>+uvm_set_severity="uvm_test_top.env.i_agt.drv,my_driver,......
  • 可选链运算符(?.)的使用
    作用:读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。运算符的功能类似于 . 链式运算符,不同之处在于,在引用为空 (nill 或者 undefined)的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 un......
  • TreeCtrl 树的存储和还原 2, VC++
    TreeCrtl树的节点可以随意的添加,删除,移动。树保存到数据库中,并能从数据库读出还原。树节点的LPARAM存放ID,这个ID是数据表自增长主键。1.数据库中读出,按PID,SID顺序,这样读出的第一个为root2.读出的数据存入list3.创建root节点,把root放入map,从list中删除4.遍历list,pid,sid在map中找......
  • java中取余运算符
    Java中取余运算符在Java中,取余运算符(%)用于计算两个数相除之后的余数。它可以用于整数和浮点数类型的操作数,并且取余运算符的使用和结果与数学中的模运算相同。本文将详细介绍Java中取余运算符的用法,并给出一些示例代码来帮助理解。取余运算符的使用取余运算符用于计算两个数相除......
  • 从 C++到 Objective-C ----2
    从C++到Objective-C(7):继承简单继承Objective-C也有继承的概念,但是不能多重继承。不过,它也有别的途径实现类似多重继承的机制,这个我们后面会讲到。C++Objective-CclassFoo:publicBar,{}@interfaceFoo:Bar//单继承//如果要同时“继承”Wiz,需要使用......
  • 从 C++ 到Objective-C
    从C++到Objective-C(1):前言DevBean 日期:2011年03月18日Objective-C可以算作Apple平台上“唯一的”开发语言。很多Objective-C的教程往往直接从Objective-C开始讲起。不过,在我看来,这样做有时候是不合适的。很多程序员往往已经掌握了另外一种开发语言,如果对一门新......
  • Name Mangling and extern “C” in C++
    SinceC++supportsfunctionoverloading,additionalinformationhastobeaddedtofunctionnames(calledNamemangling)toavoidconflictsinbinarycode.2.FunctionnamesmaynotbechangedinCasitdoesn'tsupportfunctionoverloading. Toavoid......
  • C++11新特性
    一.智能指针1.std::shared_ptrshared_ptr使用了引用计数,每一个shared_ptr的拷贝都指向相同的内存,每次拷贝都会触发引用计数+1,每次生命周期结束析构的时候引用计数-1,在最后一个shared_ptr析构的时候,内存才会释放。2.std::weak_ptrweak_ptr是用来监视shared_ptr的生命周......
  • 代码随想录-哈希表-c++总结
    哈希表内容整体简单,关键是要有利用map映射的思想,以及巩固一些c++标准库的操作这次三数之和一题没有直接做出来,关键在于如何查重一点比较绕15.三数之和-力扣(LeetCode)利用排序+双指针解决三数之和的思路更加清楚此外,四数之和中,四个数相加会溢出int,应改为 ......