qq11111qqwowo 2014-08-31 15:52 采纳率: 0%
浏览 2045

关于C++中对象作为返回值时候的调用复制构造函数

#include
using namespace std;

class A
{
public:
int v;
A(int n){v = n;}
A(const A &a)
{
v = a.v;
cout << "Copy constructor called" << endl;
}
};

A Func()
{
/*
A *b = new A(43);
return *b;
*/
A b(54);
return b;
}
int main()
{
cout << Func().v << endl;
return 0;
}

注释了的那部分可以成功调用,但是直接定义的一个对象不能调用复制构造函数。这是为什么呢?

  • 写回答

2条回答 默认 最新

  • gdq1209 2014-09-06 08:29
    关注

    局部变量出作用域就析构

    评论

报告相同问题?

悬赏问题

  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?