C++ 之头文件依赖和引用类型的成员变量
#ifndef CHILDCLASS_H
#define CHILDCLASS_H
class BaseClass;
class ChildClass // : public BaseClass 1 需要引入头文件
{
public:
ChildClass(BaseClass oBase);
BaseClass getBaseClass(BaseClass oBase);
private:
BaseClass *m_pBase; // 1 不需要引入头文件
BaseClass &m_refBase; // 2 不需要引入头文件
static BaseClass m_gBase; // 3 不需要引入头文件
// BaseClass m_oBase; 2 需要引入头文件
};
#endif // CHILDCLASS_H
引用类型成员变量的初始化:
1,不能直接在构造函数里初始化,必须用到初始化列表,且形参也必须是引用类型。
2,凡是有引用类型的成员变量的类,不能有缺省构造函数。原因是引用类型的成员变量必须在类构造时进行初始化。
3,如果两个类要对第三个类的数据进行共享处理,可以考虑把第三个类作为这两个类的引用类型的成员变量。