有如下程序 #include<iostream> using namespace std; class Test{ public: Test(){} Test(const Test& t){cout<<1;} }; Test fun(Test&u){Tes

admin2019-06-12  27

问题 有如下程序
#include<iostream>
using namespace std;
class Test{
public:
Test(){}
Test(const Test& t){cout<<1;}
};
Test fun(Test&u){Test t=u;return t;}
int main(){Test x,y;x=fun(y);return 0;}
运行这个程序的输出结果是(    )。

选项 A、无输出
B、1
C、11
D、111

答案C

解析 在类Test中定义拷贝构造函数Test(const Test &t),其函数体为输出1,在主函数main中,当执行语句x=fun(y),调用拷贝函数用对象y的值构造对象u,输出1,在执行函数fun()的return语句时,调用拷贝函数构造匿名对象,输出1。
转载请注明原文地址:https://kaotiyun.com/show/KF8p777K
0

最新回复(0)