#include <iostream>
using namespace std;
/************************************************************************
类的对象作为数据成员时
1.其他类对象作为本类数据成员时,其他类对象构造函数先调用,再调用本类构造函数,析构时,析构函数调用顺序相反
变量存放在栈区空间,先申请的在下面,后申请的在上面,释放时先释放上面,后释放下面(先进后出)
/************************************************************************/
class Phone{
public:
//初始化列表进行初始化
Phone(string phone, int much):m_phn(phone),m_much(much)
{
cout<<"Phone构造函数"<<endl;
}
~Phone()
{
cout<<"Phone析构函数"<<endl;
}
string m_phn;
int m_much;
};
class Person{
public:
//m_phone(phone)这种赋值方式是隐式法赋值,编译器转为临时对象有参构造函数:Phone m_phone=Phone(phone,much)
Person(int age, string phone, int much ):m_age(age),m_phone(phone,much)
{
cout<<"Person构造函数"<<endl;
cout<<"age:"<<m_age<<endl;
cout<<"phone:"<<m_phone.m_phn.c_str()<<endl;
cout<<"much:"<<m_phone.m_much<<endl;
}
~Person()
{
cout<<"Person析构函数"<<endl;
}
int m_age;
Phone m_phone;
};
void test1()
{
Person per(20,"小米10",3000);
}
int main()
{
test1();
return 0;
}
C++ 类对象作为数据成员
最新推荐文章于 2023-10-16 19:09:44 发布