有如下程序: #include using namespace std; class AA{ public: AA(){ cout

admin2020-10-21  21

问题 有如下程序:
     #include
     using namespace std;
     class AA{
     public:
         AA(){ cout<<1; }
         AA(AA &a){ cout<<2; }
     };   
     void f1(AA a){}
     void f2(AA &a){}
     int main(){
         AA aa;
         f1(aa);
         f2(aa);
         return 0;
     }
运行这个程序的输出是

选项 A、1
B、12
C、122
D、121

答案B

解析 main函数中,首先创建AA类的对象aa,使用默认构造函数初始化aa,输出"1";将aa作为实参传入函数f1,由于f1形参是a是局部对象,需要调用复制构造函数,用aa初始化a,输出"2";最后将aa作为实参传入函数f2,由于f2形参是AA类的引用a,a将直接引用aa,不需要调用构造函数,所以程序输出结果为:"12";答案为B。
转载请注明原文地址:https://kaotiyun.com/show/gryp777K
0

最新回复(0)