los*_*110 3 c++ constructor g++ declaration member-variables
// In A.h
class A
{
public:
enum eMyEnum{ eOne, eTwo, eThree };
public:
A(eMyEnum e);
}
// In B.h
#include "A.h"
class B
{
B();
private:
A memberA;
}
// In B.cpp
#include "B.h"
B::B(void) : memberA(A::eOne)
{}
Run Code Online (Sandbox Code Playgroud)
'memberA'的声明使用g ++编译器给出了编译错误:错误:'A :: eOne'不是类型
我怎么能克服这个?我只需要创建一个不带参数的默认构造函数吗?
听起来您正在尝试初始化成员变量.你可以这样做:
class B
{
public:
B() : memberA(A::eOne) {} // Initializer list in constructor
private:
A memberA;
};
Run Code Online (Sandbox Code Playgroud)