拷贝构造函数

考虑一下代码:

 

class Test
{
public:
 Test(void);
 Test(const Test& t);
 ~Test(void);
public:
 int i;
};

Test::Test()
{
 i=1;
}
Test::Test(const Test &t)
{
 this->i=(t.i+1);
}
Test::~Test()
{

}

Test Func(Test t)
{
 int i=t.i+1;
 return t;
}

int _tmain(int argc, _TCHAR* argv[])
{
 Test t;
 int i=t.i;
 Func(t);
 return 0;
}

 

注意红色标注的函数调用,调用了几次拷贝构造函数?

两次:1次是做为实参传递t的时候,调用了一次拷贝构造函数(effective C++学到的);

       另1次是,Func(t)返回的时候,又调用了一次拷贝构造函数

 

原文链接: https://www.cnblogs.com/peijihui/archive/2010/12/30/1922347.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    拷贝构造函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/19449

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午8:32
下一篇 2023年2月7日 下午8:33

相关推荐