gpt4 book ai didi

c++ - 静态初始化派生类

转载 作者:行者123 更新时间:2023-11-30 02:11:45 26 4
gpt4 key购买 nike

使用c++,有没有办法让派生类继承它自己的静态初始化器?我正在尝试执行以下操作:

class Base {

public:
class StaticInit {
public:
virtual StaticInit() =0;
};
};



class Derived: public Base {
public:
virtual StaticInit::StaticInit() {
//do something with the derived class
}
static StaticInit init;
}

static Derived::StaticInit init;

如果我不必在每个派生类中都定义 init var 就好了。我目前正在每个派生类中重新定义 StaticInit 内部类,但这似乎是多余的。

每个派生类都是单例,我需要在程序启动时将实例存储在查找表中。

最佳答案

我使用模板来执行此操作,而不是继承 - 例如:

template <typename T>
struct StaticInit {
StaticInit() {
// do whatever with T
}
};

正在使用中:

static StaticInit <SomeClass> init;

关于c++ - 静态初始化派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2840079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com