C++操作符重载

2021-04-02 06:27

阅读:490

标签:返回   font   amp   结果   out   支持   operator   c++   不同   

/******** 操作符重载 
***
***   下面三种方式,都支持连续加操作,但是稍有不同,你知道哪里不同吗
***
******/
 
/** Test1
*****/
#if 0
class Calculate
{
	int a;
public:
	Calculate(void) : a(0)
	{
		cout a + obj.a;
		cout a + obj.a;
        cout 实测结论:  第二个打印块内: Test2 会比Test1的多执行两个构造函数,即Calculate(int val)。

原因:   Test2: obj3 = obj0 + obj1 + obj2 这句代码,先执行obj0 + obj1,会生成一个临时对象(假设称为X),其类型为返回值Calculate类型,
           同时实际返回的是int类型,这就触发了只带一个int参数的构造函数的执行。
           之后继续执行X + obj2 ,
           同理,会生成一个临时对象Y,先执行完Y的重载+的重载函数后,后调用Y的只带一个int参数的构造函数的执行,然后将Y赋值给obj3.
**/


#if 0
/****  Test3
 *****/
class Calculate
{
    int a;
public:
    Calculate(void) : a(0)
    {
        cout a += obj.a;
        cout 

  

 

C++操作符重载

标签:返回   font   amp   结果   out   支持   operator   c++   不同   

原文地址:https://www.cnblogs.com/happybirthdaytoyou/p/13496428.html


评论


亲,登录后才可以留言!