Singleton类无法处理多个文件

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

说我有这个代码:

#include <iostream>
using namespace std;

class Something
{
    int field1;

    static Something *nill;
    static bool initialized;

    static void initialize() {
        if (initialized)
            return;
        initialized = true;
    }

public:
    static Something* Nill()
    {
        initialize();
        return nill;
    }

    static Something* Singleton(int field1)
    {
        initialize();
        Something *ret = new Something();
        ret->field1 = field1;

        return ret;
    }
}

Something* Something::nill = new Something();
bool Something::initialized = false;

int main(void)
{
    Something *smth = something->Nill();
    return 0;
}

为什么没有“某物”单例课程,我怎么能做到这一点?另外,如何将这段代码分成两个文件.h和.cpp?我遇到了问题,因为我在这里有一些全局变量,而且我不知道如何在其他文件中使用它们。

说我有这段代码:#include 使用命名空间std; class Something {int field1;静态*零;静态布尔初始化;静态void initialize(){...

c++ file oop singleton
1个回答
1
投票

这不是单例课程。 Singleton类表示在任何给定时间内,该类的实例不能超过1个。在您的示例中,您不仅要创建一个新实例,甚至还要在其方法中返回新的类对象。

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