有以下程序:#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ù)的情況為:一個(gè)新對(duì)象被另一個(gè)已存在的同類型對(duì)象初始化,當(dāng)一個(gè)對(duì)象作為實(shí)參傳遵給函數(shù)時(shí)為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù)。在函數(shù)值返回時(shí)形參的生命期結(jié)束時(shí)它的析構(gòu)函數(shù)被調(diào)用,在函數(shù)返回一個(gè)對(duì)象時(shí)調(diào)用拷貝構(gòu)造函數(shù)。符合以上條件的有:用對(duì)象obj1來(lái)初始化obj3;obj3作為實(shí)參被傳入,函數(shù)fun返回一個(gè)對(duì)象時(shí),系統(tǒng)用返回值初始化一個(gè)匿名對(duì)象時(shí)調(diào)用了拷貝構(gòu)造函數(shù)。總共調(diào)用4次。
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。