Kia*_*ian 5 c++ abstract-class static-members
我设计了一系列相关的类,为了能够管理它们,我让它们派生自一个抽象类。
这些类都需要访问一系列共享资源,我发现自己在每个类中都创建了一个指针向量,所有这些都相同(它们必须相同)。似乎在基类中创建一个静态成员将使所有派生类都可以访问此向量,这意味着我只需要构建一次(构建后也不会更改,只需查找即可)。
我的问题是这是否可以,如果可以,我该如何构建它,而无需从派生类之一调用“填充向量”方法?
我的想法是做类似的事情
class Resource {};
enumR {RES0, RES1};
class AbstractClass
{
public:
virtual void OnInit() = 0;
void static fillVector(Resource* pResource, enumR Resourcename)
{lResource[Resourcename]=pResource;};
protected:
static vector<Resource*> lResource;
};
vector<Resource*> AbstractClass::lResource;
int main()
{
Resource res0, res1;
AbstractClass::fillVector(&res0, RES0);
AbstractClass::fillVector(&res1, RES1);
return 0;
};
Run Code Online (Sandbox Code Playgroud)
然后,当我实例化从 AbstractClass 派生的任何类的对象时,我就可以访问 lResource 向量,这正是我想要的。
这行得通吗?可怕吗?可以吗?
| 归档时间: |
|
| 查看次数: |
7589 次 |
| 最近记录: |