程序设计与算法(三)第03周测验002:Big & Base 封闭类问题
【摘要】
程序设计与算法(三)第03周测验002:Big & Base 封闭类问题
本文是中国大学MOOC,北京大学程序设计与算法(三)C++面向对象程序设计第三周测验。本课程学习的github仓库欢迎F...
程序设计与算法(三)第03周测验002:Big & Base 封闭类问题
本文是中国大学MOOC,北京大学程序设计与算法(三)C++面向对象程序设计第三周测验。本课程学习的github仓库欢迎Fork
-
总时间限制:
1000ms
-
内存限制:
65536kB
-
描述
程序填空,输出指定结果
#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; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
-
输入
多组数据,每组一行,是一个整数
-
输出
对每组数据,输出两行,每行把输入的整数打印两遍
-
样例输入
3 4
- 1
- 2
-
样例输出
3,3 3,3 4,4 4,4
- 1
- 2
- 3
- 4
老规矩,先看主函数:
int main() { int n; while(cin >>n) { Big a1(n); //构造函数,初始化a1 Big a2 = a1; //复制构造函数,复制a1 cout << a1.v << "," << a1.b.k << endl; cout << a2.v << "," << a2.b.k << endl; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
再看类函数:
class Base { public: int k; Base(int n):k(n) { } }; class Big //有成员变量的类叫封闭类 { public: int v; Base b; //成员对象 // 在此处补充你的代码 };
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
注意,这是一个封闭类,课程的PPT有讲到:
任何生成封闭类对象的语句,都要使得编译器明白,对象中的成员对象,是如何初始化的。完成这一任务的方法是通过封闭类的构造函数的初始化列表,成员对象初始化列表中的参数可以是任意复杂的表达式,可以包括函数,变量,只要表达式中的函数或变量有定义就行。
如果题目不懂,不妨把课程对应部分再看一遍。慢慢来,比较快。不要心浮气躁。
所以我们需要使用初始化列表进行封闭类的初始化:
class Big { public: int v; Base b; // 在此处补充你的代码 Big(int n):v(n),b(n){} //初始化列表 };
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
提交,通过。记得下载通过码。
文章来源: blog.csdn.net,作者:沧夜2021,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/CANGYE0504/article/details/104753079
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)