011:Big & Base 封闭类问题
题面
描述
程序填空,输出指定结果
#include <iostream>
#include <string>
using namespace std;
class Base {
public:
int k;
Base(int n):k(n) { }
};
class Big
{
public:
int v;
Base b;
// 在此处补充你的代码
};
int main()
{
int n;
while(cin >>n) {
Big a1(n);
Big a2 = a1;
cout << a1.v << "," << a1.b.k << endl;
cout << a2.v << "," << a2.b.k << endl;
}
}
思路
封闭类的构造函数和复制构造函数的编写。
要注意的是封闭类中的成员对象生成时,先执行所有成员对象的构造函数,然后才执行封闭类自己的构造函数。
析构则相反。
#include <iostream>
#include <string>
using namespace std;
class Base {
public:
int k;
Base(int n) :k(n) { }
};
class Big
{
public:
int v;
Base b;
Big(int n) :v(n), b(n) {
}
Big(const Big& x) :v(x.v), b(x.v) {
}
};
int main()
{
int n;
while (cin >> n) {
Big a1(n);
Big a2 = a1;
cout << a1.v << "," << a1.b.k << endl;
cout << a2.v << "," << a2.b.k << endl;
}
}