我认为这是相当基本的,但我在这里找不到任何来源。
派生类包含需要传递给基类的初始化信息。在这种情况下,它是内存预留。
class Derived: public Base
{
private:
const unsigned short memorySize= 100;
public:
inline Derived() : Base(memorySize) {}
void DoStuff();
};
这惨不忍睹。我希望在派生构造函数之前调用基本构造函数,并且仅在调用派生构造函数时才分配 memorySize。
#define memorySize 100
class Derived: public Base
{
private:
public:
inline Derived() : Base(memorySize) {}
void DoStuff();
};
这按预期工作。
我的问题:我假设第一个示例中的 memorySize 在调用基本构造函数时尚未初始化,还是这里发生了其他事情?
我了解到 #define for constants 在 C++ 中是不可取的,并且最好使用 const 值。这是该规则的一个例外,还是有更合适的方法来处理这种情况?