HM112 先有零件再有整机
HM112 先有零件再有整机
来源: 第 112 集 类和对象-对象特性-类对象作为类成员
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
一个类的成员可以是另一个类的对象,这样的成员叫**对象成员**。例如人员 Person 里有姓名字符串,还有一部 Phone。创建人员时,必须先把这部手机构造出来,再构造人员自身;析构顺序与构造相反——先拆人员,再拆手机。
Phone 只有品牌名 mPName。它的有参构造接收一个字符串,记到品牌上。
Person 的构造必须用**初始化列表**:形参列表右括号后写冒号,: mName(name), mPhone(pName)。其中 mPhone(pName) 相当于用字符串去构造手机,也就是隐式转换法。不要在函数体里再给这两个成员做一遍赋值冒充初始化列表。
读入 \(n\) 个人。每创建一个人,立刻在该人的生存期结束时析构,因此每个人的构造、自报家门、析构是一段连续输出,不会和别人交错。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 1000\))。
接下来 \(n\) 行,每行两个不含空白的字符串 \(name\)、\(brand\)(长度均为 \(1\sim 20\)),表示姓名和手机品牌。
输出格式
对每个人依次输出五行,行末换行:
构造 Phone
构造 Person
name 拿着 brand
析构 Person
析构 Phone
其中 name、brand 为输入中的姓名和品牌,中间用「拿着」两侧各一个空格连接。
样例
输入 #1
2
张三 苹果Max
李四 华为
输出 #1
构造 Phone
构造 Person
张三 拿着 苹果Max
析构 Person
析构 Phone
构造 Phone
构造 Person
李四 拿着 华为
析构 Person
析构 Phone
输入 #2
1
Wang Xiaomi
输出 #2
构造 Phone
构造 Person
Wang 拿着 Xiaomi
析构 Person
析构 Phone
说明
- 构造时先对象成员、后自身;析构与构造相反。
- 初始化列表可以把字符串直接交给对象成员,对应隐式转换法。
- 「拿着」两侧各一个空格,品牌名必须来自
Phone对象成员,不能只在main里拼接输入。
信息
- ID
- 1111
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者