问题引出
C++中两个类互相包含是无法通过编译的:
|
1 2 3 4 5 6 7 |
class B; class A{ B b; } class B{ A a; } |
0x01 介绍 C++类中有两种方式可以用来初始化成员变量,一种最常见的是在构造函数内部直接对成员函数赋值:
|
1 2 3 4 5 6 7 |
class CTest{ int m_a, m_b; CTest(int a, int b){ m_a = a; m_b = b; } } |
另外一种方式就是通过构造函数的初始值列表来完成初始化:
|
1 2 3 4 |
class CTest{ int m_a, m_b; CTest(int a, int b) : m_a(a), m_b(b){} } |
这 ... 阅读更多