问题描述
- 关于c++成员初始化列表
-
假定manager类由person类公有继承而来 新增了一个int值成员a
定义manager类的复制构造函数时
manager::manager(const manager & m):person(m),a(m.a) { }
是不是不能a(m.a)这样用?我把”.“打出来后显示没有可用成员 为什么呢?
解决方案
class A
{
public: int a;
};
class B
{
public: B(int a) {}
};
class C
{
B b;
public: C(const A& a) : b(a.a) {}
};
int main() {}
可以编译
解决方案二:
C++初始化类的成员,不但可以用构造函数(constructor)完成,而且可以用初始化类成员列表来完成。MFC大量用到此方法。例如有些初学者可能不大理解如下代码:
class A
{
??public:
????int member_var; //成员变量
??? ......
答案就在这里:C++初始化成员列表
时间: 2024-07-28 13:49:03