声明一个带有构造函数参数的成员变量

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'不是类型

我怎么能克服这个?我只需要创建一个不带参数的默认构造函数吗?

Oli*_*rth 8

听起来您正在尝试初始化成员变量.你可以这样做:

class B
{
public:
    B() : memberA(A::eOne) {}  // Initializer list in constructor
private:
    A memberA;
};
Run Code Online (Sandbox Code Playgroud)