有以下程序:#includeusing namespace std;class MyClass{public:MyClass(int n){numbe
有以下程序: #include<iostream> using namespace std; class MyClass { public: MyClass(int n){number=n;} //拷貝構(gòu)造函數(shù) MyClass(MyClass&other) {number=other.number;} ~MyClass() {} private: int number; }; MyClass fun(MyClass p)
A.5
B.4
C.3
D.2
正確答案:B解析: 調(diào)用拷貝構(gòu)造函數(shù)的情況為:一個新對象被另一個已存在的同類型對象初始化,當(dāng)一個對象作為實參傳遵給函數(shù)時為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù)。在函數(shù)值返回時形參的生命期結(jié)束時它的析構(gòu)函數(shù)被調(diào)用,在函數(shù)返回一個對象時調(diào)用拷貝構(gòu)造函數(shù)。符合以上條件的有:用對象obj1來初始化obj3;obj3作為實參被傳入,函數(shù)fun返回一個對象時,系統(tǒng)用返回值初始化一個匿名對象時調(diào)用了拷貝構(gòu)造函數(shù)??偣舱{(diào)用4次。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。