【发布时间】:2017-05-12 16:36:42
【问题描述】:
我已经读过“复制对象以从函数中返回它”时调用复制构造函数。
所以我知道每当我们返回一个对象时都会调用复制构造函数,我的理解是否正确?
如果是,那么每当我们返回一个对象时,都会调用构造函数。因此,如果我们在程序的中间,将调用复制构造函数。然后将值分配给类的数据成员。那么现有的值会被替换吗?
如果不是,这句话是什么意思?
SRC:Tutorial point
#include <iostream>
using namespace std;
class demo
{
public:
int rate;
demo(int init_rate);
demo( const demo &obj_passed);
demo display();
};
demo::demo(int init_rate)
{
cout << "\nNormal Construtor" << endl;
rate=init_rate;
}
demo::demo(const demo &obj_passed) // Copy Constructor
{
cout << "\nCopy constructor" << endl;
rate=obj_passed.rate;
}
demo demo::display()
{
demo temp(10);
temp.rate=45;
return temp; //copy constructor is not called here
}
int main( )
{
demo obj1=obj1.display();
return 0;
}
输出是
Normal Constructor
【问题讨论】:
标签: c++