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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题