有如下程序: #inc1ude<iostream> #inc1ude<cstring> using namespace std; class XCF{ int a; public: XCF (int

admin2018-12-04  27

问题 有如下程序:
    #inc1ude<iostream>
    #inc1ude<cstring>
    using namespace std;
    class XCF{
    int a;
    public:
    XCF (int aa=0): a(aa){cout<<"1";}
    XCF(XCF&x){a=x.a; cout<"2";}
    ~XCF(){cout<<a;}
    int Geta(){return a;}
    };
    int main(){
    XCF dl(5), d2(dl);
    XCF *pd=new XCF(8);
    cout<<pd一>Geta();
    delete pd;
    return 0:
    }
    运行时的输出结果是(     )。

选项 A、1215588
B、1218855
C、12185
D、128512

答案B

解析 在这个程序中在建立对象d1(5)时,调用构造函数XCF(int aa=0):a(aa) {cout<<”1”;},输出1;在建立d2(dl)时,调用拷贝构造函数XCF(XCF&x){ a=x.a, cout<<”2”;},输出2:在建立new XCF(8)对象时,调用构造函数XCF (int aa=0):a(aa){cout<<”1”;),输出1;语句cout<<pd一>Geta()的功能是输出8;语句delete pd;调用析构函数~XCF(),输出8;当退出程序时,分别释放对象d2、dl,输出55。
转载请注明原文地址:https://kaotiyun.com/show/KuAp777K
0

最新回复(0)