首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一道简单的C++面试题,求解题过程,该怎么解决

2012-04-24 
一道简单的C++面试题,求解题过程求下面代码的输出结果:C/C++ code#include stdafx.h#include iostream

一道简单的C++面试题,求解题过程
求下面代码的输出结果:

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 

热点排行