【C++语法地图】类对象作为类成员

C++中类的成员可以是另外一个类的对象,可以称这个 类中对象 为 对象成员

        需要定义两个类,前一个类的对象作为后一个类的成员时,就是类的嵌套子对象,但是注意若在定义类时注意前向声明,不然在类还没定义就使用创建对象的话编译器会报错

Sample:

class A{

};
class B{
    A a;//对象a为类B的嵌套子对象
}

关于类的嵌套子对象与类的构造顺序

        使用一个具体实例:BILIBILI作为一个类,投稿作为BILIBILI类的嵌套子对象,投稿类中包含了稿件名,BILIBILI类中包含频道分区

#include <iostream>
#include <string>
using namespace std;
class contribution {
public:
	contribution(string Name="空") :Name(Name) {
		cout << "投稿构造" << endl;
	}
	~contribution(){
		cout << "投稿析构" << endl;
	}
	string Name;
};
class BILIBILI {
public:
	BILIBILI(string channel,string a) :channel(channel), a(a) {
		cout << "B站构造" << endl;
	}
	~BILIBILI(){
		cout << "B站析构" << endl;
	}
	string channel;
	contribution a;//嵌套子对象
};
int main() {
	BILIBILI C("blank", "萨日朗");
}

        本类的构造函数中要包含能构造嵌套子对象的成分,也就是说嵌套子对象的构造函数要被调用。若不是把嵌套子对象的构造函数写在本类内,就是用其他途径转换成嵌套子对象的构造函数。如上图中BILIBILI类中构造函数用string a参数完成嵌套子对象的构造任务,因为contribution的构造函数中只有一个string Name参数,相当于在本类构造函数中调用嵌套子对象的构造函数

        当创建本类对象时,可见是先构造嵌套子对象,再构造本类自身,析构顺序与构造顺序相反,先析构本类,再析构嵌套子对象。

总结:

        嵌套子对象与建造人形类似,首先要构造出身体部件,完成了以后才组装成完成品;然后在销毁时,先解构全身部件,完成品被销毁,剩下了解构后的零件再进一步销毁

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值