C ++类成员构造函数和继承

时间:2016-02-22 23:18:00

标签: c++11

在我的代码中,classNameclassType会抛出“不是非静态成员或基类”错误。

class BaseClass
{
public:
    std::string className;
    int classType;
};

class DerivedClass : public BaseClass
{
public:
    // Default Constructor
    DerivedClass(){};

    // Member Constructor
    DerivedClass(
        std::string className_,
        int classType_
    ) :
    className( className_ ),
    classType( classType_ )
    {}

    // Destructor
    ~DerivedClass(){};
};

1 个答案:

答案 0 :(得分:2)

错误非常精确:您无法在子项初始化列表中引用父类的成员。

而是将它们传递给初始化列表中的父母ctor:

DerivedClass(
    std::string className_,
    int classType_
) 
: BaseClass(className_, classType_)