【发布时间】:2010-10-16 00:22:59
【问题描述】:
我有一个类的层次结构。基类使用一些可从文件加载(并在运行时可重新加载)的调整参数。每个派生类都可以添加一些额外的参数。我正在寻找一种在基本构造函数中分配正确大小的参数数组的方法,这样我就不必在派生类中重新分配和重新分配。我希望有这样的东西,但它不起作用(参数总是有 2 个元素):
class Base
{ static int nParms;
virtual int getNParms() { return nParms;}
float *parameters;
public:
Base()
{ parameters= new float[this->getNParms()];
parameters[0] = globalReloadableX;
parameters[1] = globalReloadableY;
}
};
int Base::nParams =2;
class Derived : public Base
{ static int nParms;
virtual int getNParms() { return nParms;}
public:
Derived() : Base()
{ parameters[2] = globalReloadableZ;
}
}
int Derived::nParams =3;
我见过this question,但那里的解决方案对我来说不太奏效。 我还尝试在每个类中将参数设为常规数组:
class Base
{ float parameters[2]
...
class Derived : public Base
{ float parameters[3]
...
但这使得 Derived 有 2 个单独的数组。
有什么想法吗?
【问题讨论】:
标签: c++ inheritance static constructor