Panda Wiki

C++ 保证某个 Class 在全程序仅有一个实例

定义这样一个类a

class a
{
    public:
    a(){};
    ~a(){};
    static a* theInstance();
};
a* a::theInstance()
{
    static a *b = new a;
    return b;
}

那么在全程序任何地方使用 a::theInstance()来获取实例,就总能得到唯一的类 a 的实例。这大概是比较基础的技巧,但是我第一次知道时还是很惊讶的。原理是利用了类的静态成员函数和静态变量的性质。

Copyright © 2020 熊猫小A Views