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

How to put int parameter into Sigleton constructor in C++

#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()) {
}