程式設計實習MOOC/7999/3w9:第三週程式填空題4

afra發表於2019-05-11

3w9:第三週程式填空題4

總時間限制: 1000ms 記憶體限制: 65536kB
描述
下面程式的輸出結果是:

5,5

5,5

請填空:

#include <iostream>
using namespace std;
class Base {
public:
    int k;
    Base(int n):k(n) { }
};
class Big  {
public:
    int v; Base b;
// 在此處補充你的程式碼
};
int main()  {
    Big a1(5);    Big a2 = a1;
    cout << a1.v << "," << a1.b.k << endl;
    cout << a2.v << "," << a2.b.k << endl;
    return 0;
}

輸入

輸出

5,5
5,5

樣例輸入

樣例輸出

5,5
5,5

提示
所缺程式碼具有如下形式:

Big ________________{ }
Big ________________{ }

題解分析

完整程式碼

#include <iostream>
using namespace std;
class Base
{
public:
    int k;
    Base(int n): k(n) { }
};
class Big
{
public:
    int v;
    Base b;
// 在此處補充你的程式碼
    Big(int a):v(a), b(a){}
};
int main()
{
    Big a1(5);
    Big a2 = a1;
    cout << a1.v << "," << a1.b.k << endl;
    cout << a2.v << "," << a2.b.k << endl;
    return 0;
}

Big類是一個封閉類,在生成Big類物件之前,會先生成Base類的物件(呼叫Base類的建構函式生成Big類的成員物件b),然後再呼叫Big類的建構函式,生成Big類物件a1.
程式碼Big a2 = a1;中,呼叫Big類預設的複製建構函式,以a1為預設複製建構函式的引數,生成物件a2.

相關文章