对象成员

类对象作为类成员

  • c++类中的成员可以是另一个类的对象,即对象成员。

例如:

1
2
3
4
5
class A{}
class B
{
A a;
}
  • 当其他类的对象作为本类成员,先构造类成员对象,在构造自身,析构的顺序和构造相反。
  • 要提前声明或者定义要使用要的类。

示例:

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
26
27
28
29
30
31
32
33
#include<iostream>
using namespace std;
class Phone {
public:
string m_pName;
string m_pNumber;
Phone(string pName,string pNumber):m_pName(pName),m_pNumber(pNumber) {
cout << "Phone的构造函数调用。" << endl;
}
~Phone() {
cout << "Phone的析构函数调用。" << endl;
}
};
class Person {
public:
string m_name;
Phone m_phone;
//Phone m_phone(pName,pNumber)
Person(string name, string pName, string pNumber) :m_name(name), m_phone(pName, pNumber) {
cout << "Person的构造函数调用。" << endl;
}
~Person() {
cout << "Person的析构函数调用。" << endl;
}
};
void test01() {
Person p("张三","iPhone 7","123456");
cout << "姓名:" << p.m_name << " 手机型号:" << p.m_phone.m_pName << "手机号码:" << p.m_phone.m_pNumber << endl;
}
int main() {
test01();
return 0;
}

运行结果:

1
2
3
4
5
Phone的构造函数调用。
Person的构造函数调用。
姓名:张三 手机型号:iPhone 7手机号码:123456
Person的析构函数调用。
Phone的析构函数调用。