类的组合

类的组合:类中的数据成员是另一个类的对象:可以在已抽象的基础上实现更复杂的抽象

也就是一个类中抱含了另一个类的对象;

-----------------------------------------------------------

类组合的构造函数:不仅要负责对本类中的基本数据类型成员数据赋初值,也要对对象成员赋初值:

 1 #include<iostream>
 2 using namespace std;
 3 class A
 4 {
 5     public:
 6     A(int aa):a(aa)
 7     {}
 8     int a;
 9 };
10 
11 class B
12 {
13     public:
14         B(int bb):b(bb)
15         {}
16     int b;
17 };
18 
19 class C
20 {
21     private:
22     A a1;
23     B b1;
24     int c;
25     public:
26         C(int i,int k,int j);
27         void display()
28         {
29         cout<<a1.a<<b1.b<<c<<"
";
30         }
31 };
32 C::C(int i,int k,int j):a1(i),b1(k),c(j)//注意类中对象的传参:先是对象初始化,最后才组合类的初始化
33 {
34 }
35 
36 int main()
37 {
38 C c1(1,2,3);
39 c1.display();
40 }
1、构造函数调用顺序:先调用内嵌对象的构造函数(按内嵌时的声明顺序,先声明者先构造)。然后调用本类的构造函数。(析构函数的调用顺序相反
2、若调用默认构造函数(即无形参的),则内嵌对象的初始化也将调用相应的默认构造函数
 
注意:在类中只能声明对象,而不能初始化:如A a(5),这种事错误的。
 
 
 
原文地址:https://www.cnblogs.com/defen/p/5312828.html