编程题#3 (注:提交作业时只提交补充的代码 !!!)
来源: POJ (http://cxsjsxmooc.openjudge.cn/test/3w9/)
注意: 总时间限制: 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 n) :v(n), b(n){} //类型转换构造函数
Big(const Big& a) :v(a.v), b(a.b.k) {} //复制构造函数,这行其实可以不要
//Big(const Big& a) :v(2*a.v), b(3*a.b.k) {} //试试改成这样
};
int main() {
Big a1(5);
Big a2 = a1;
cout << a1.v << "," << a1.b.k << endl;
cout << a2.v << "," << a2.b.k << endl;
return 0;
}