类对象作为类成员---------类和对象 c++

文章目录

  • 前言
    • 当A类是B类的成员对象时,谁先构造和解析
  • 总结


前言

当一个类的成员是另一个类的对象时, 称该成员为对象成员。
eg:
class A { }
class B
{
A a;
}
A类是B类的成员对象
(又是一个熟悉的套娃,变成的本质就是一层一层套娃)


当A类是B类的成员对象时,谁先构造和解析

代码如下(示例):

#include
using namespace std;
class car
{
	public:
		car(string name)
		{
			carname=name;
			cout<<"car构造"<<endl;
		}
			string carname;//输入车的名字 
	~car()
	{
		cout<<"car析构函数调用"<<endl;
	}
		
};
class person
{
	public:
		
//		person(string a)
//		{
//			name=a;     //输入名字 
//		}
		//person构造函数调用 
		person(string b,string c):name(b),namecar(c)//原理   隐式转换法  string namecar=c 
		{
				cout<<"person 构造函数调用"<<endl;
		}
		car namecar;    //car是person的对象成员 
		string name;
		~person()
{
	cout<<"person析构函数调用"<<endl; 
}
void test2()
{
		cout<<name<<"    "<<namecar.carname<<endl;//用  namecar调用carname 
}
};

void test()
{
	person p1("afana","劳斯莱斯");
	p1.test2();

}
int main()
{
	test();
	return 0;
}


总结

先构造对象成员的构造函数,
最后调用对象成员的析构函数。

你可能感兴趣的:(c++,c++)