Bad*_*Cat 0 c++ inheritance constructor
我有两个C++类,一个基类和一个子类.基类定义了一些属性,子类定义了其他属性.现在,在子类中,构造函数定义了几个默认参数,它也需要包含基类的默认参数.我怎么做?
例:
// Base.h
class Base {
protected:
State _state;
State _previousState;
public: Base();
};
// Sub.h
class Sub : public Base {
private:
int _rate;
int _checkCount;
public: explicit Sub(int sampleRate);
};
// Sub.cpp
Sub::Sub(int rate)
:_state(Silent),
_previousState(Running),
_rate(rate),
_checkCount(0)
{
}
Run Code Online (Sandbox Code Playgroud)
显然,在Sub.ccp构造函数中,_state和_previousState args是错误的.如何将它们正确地集成到这个结构中?
通过给基础构造函数一些参数,并使用参数调用它:
Base::Base(State state = {}, State previousState = {})
: _state(state)
, _previousState(previousState)
{}
// ...
Sub::Sub(int rate)
: Base(Silent, Running)
, _rate(rate)
, _checkCount(0)
{}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |