c++静态初始化链和共享库

问题描述 投票:0回答:1

我有一个静态初始化链的简单案例。

在文件 Base.h 中

class Base {
public:
    Base() {
       this->next_ = list_;
       list_ = this;
    }

    virtual void
    Init() = 0;

    static void InitAll() {
        Base* cur = list_;
        while(cur) {
             cur->Init();
             cur = cur->next_;
        }
    }

private:
    Base* next_;
    static inline Base* list_;
};

在文件A.cpp中


class A: public Base {
public:
     ...
     void Init() override { ... }
};

static A instance_of_a;

我有类似的文件B.cpp、C.cpp等

我想将A.cpp,B.cpp,C.cpp,...分别制作成一个单独的共享库,是否可以不使用dlsym?我可以将 Base 放入另一个共享库吗?

c++ initialization shared-libraries
1个回答
0
投票

它就可以工作:不需要什么特别的。

© www.soinside.com 2019 - 2024. All rights reserved.