构造函数和复制构造函数的顺序

时间:2016-04-08 10:17:42

标签: c++ constructor

有人能告诉我为什么在这种情况下,程序会使用复制构造函数和析构函数吗?

#include <iostream>

#include <iomanip>

using namespace std;

class Object
{
public:
        Object(){}
        Object(const Object &kk) {cout<<"kk"<<endl;}
        bool operator==(Object c)
        {
                cout<<"o=="<<endl; return false;
        }
        ~Object()
        {
                cout<<"des"<<endl;
        }

};

int main()
{
        Object o1,o2;
        bool result;
        result = (o1==o2);
}

结果是:

kk
o==
des

提前感谢您的回答。

1 个答案:

答案 0 :(得分:2)

因为您的<div class="left-sidebar col-md-3"> <div class="sidebar-menu col-xs-6 pull-right"> menu </div> </div> <div class="right-content col-md-9> <div class="content-text col-xs-10> content </div> </div> 按值获取其参数。

按价值计算意味着副本。

改为使用const-reference,就像你为复制构造函数所做的那样。