一道简单的C++面试题,求解题过程,该怎么解决
一道简单的C++面试题,求解题过程
求下面代码的输出结果:
我认为的结果是:
abc
abc
~abc
~abc
但正确为什么会输出
abc
~abc
~abc
求过程。。。
------解决方案--------------------
请加上拷贝构造函数
------解决方案--------------------
请加上拷贝构造函数
------解决方案--------------------
Test(pobj); 时是这样的://调用复制构造函数
//将形参对象创建为实参对象的副本
//函数执行完毕后调用析构函数撤销形参Exmp1对象
建议楼主看看这个:http://hi.baidu.com/qiaolw/blog/item/e60a8dc52ff337c8d00060cf.html
------解决方案--------------------
求下面代码的输出结果:
- C/C++ code
#include "stdafx.h" #include <iostream> using namespace std; class abc { public: abc() { cout<<"abc"<<endl; } ~abc() { cout<<"~abc"<<endl; } }; void Test(abc pobj) { } int _tmain(int argc, _TCHAR* argv[]) { abc pobj; Test(pobj); return 0; }
我认为的结果是:
abc
abc
~abc
~abc
但正确为什么会输出
abc
~abc
~abc
求过程。。。
------解决方案--------------------
请加上拷贝构造函数
------解决方案--------------------
请加上拷贝构造函数
------解决方案--------------------
Test(pobj); 时是这样的://调用复制构造函数
//将形参对象创建为实参对象的副本
//函数执行完毕后调用析构函数撤销形参Exmp1对象
建议楼主看看这个:http://hi.baidu.com/qiaolw/blog/item/e60a8dc52ff337c8d00060cf.html
------解决方案--------------------
- C/C++ code
Test(pobj);//这个调用的是拷贝构造函数,没有调用默认的构造函数,所以没有打印第二个abc