c++ - 如何在 C++ 中将 int 参数放入 Sigleton 构造函数

标签 c++ constructor singleton private

#include "Generator.h"
#include "Proxy.h"

Proxy::Proxy(int inputbits):Generator(inputbits)
{

}

Proxy::~Proxy()
{

}

Generator * Proxy::operator ->()
{
    if(counter<=10)
    return rPointer;
    else
    return 0;
}

//Proxy* Proxy::instance = 0;

Proxy* Proxy::getInstance()
{
    static Proxy* instance;
    return instance;
}

.

#ifndef PROXY_H
#define PROXY_H
#include "Generator.h"

class Proxy: private Generator
{
    public:
        ~Proxy();
        static Proxy* getInstance();
        Generator * operator ->();
    private:
        Proxy();
        Proxy(int);
        int bits;
        int counter;
        Generator * rPointer;
};

#endif // GENERATORPROXY_H

这些是我的单例代码,我想做的是在主函数中创建 Proxy 对象作为 Proxy::Proxy(int inputbits ):Generator(inputbits) 我打算使用 getInstance 函数,但它不起作用。如果您有任何想法,请赐教。谢谢,我希望能够做的是,例如,在 main 函数中,Proxy px(3); <- 我知道这行不通,但我想以任何方式使用类似的东西。

最佳答案

您可以在另一个函数的帮助下完成它,该函数在其调用时提供所需的位。

int get_bits() {
    return 3;
}

Proxy *Proxy::getInstance() {
    static Proxy* instance = new Proxy(get_bits());
    return instance;
}

或者在单个 Proxy 默认构造函数中完成(更好)

Proxy::Proxy():Generator(get_bits()) {
}

关于c++ - 如何在 C++ 中将 int 参数放入 Sigleton 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50012999/

相关文章:

c++ - c++中一个类最多可以有多少个成员

c++ - 声明时新的 C++11 成员初始化功能是否使初始化列表过时?

objective-c - Objective-C 中的优雅和 'correct' multiton 实现?

JavaScript 单例

C++构造函数隐式转换没有发生

Delphi 单例模式

c++ - 使用 APIHijack 解除 API Hook

c++ - 为什么这不是 C/C++ 中的无限循环

c++ - 从 tr1::regex_search 获取匹配索引

android - 由于某些中间构造函数调用,没有可用的 TYPE 封闭实例