单例模式 - 无法在没有对象的情况下调用成员函数

时间:2016-03-26 20:23:58

标签: c++ oop pointers singleton member

我是单身人士的新手,一般都是OOP,我的代码有点问题。我在这里搜索“无法调用没有对象的成员函数”,但引擎返回了一些与单例无关的主题。 这是我的代码,编译器告诉我“无法调用成员函数'void mySingleton :: set_value(int)'没有对象”。你有什么想法我能解决这个问题吗?

#include <iostream>

class mySingleton{

private:
        int value;
        static mySingleton *_pInstance;
        mySingleton(int Value=0) {value=Value;}
public:
    ~mySingleton() {value=0;}

    static mySingleton *getInstance()
    {
        if(!_pInstance) _pInstance=new mySingleton;
        return _pInstance;
    }

    int  get_value()        {return value;}
    void set_value(int x=0) {value=x;}

};

mySingleton *mySingleton::_pInstance=NULL;

int main()
{

    std::cout << "Initial value:" << mySingleton::getInstance()->get_value() << std::endl;
    mySingleton::set_value(5);
    std::cout << "Modified value: " << mySingleton::getInstance()->get_value() << std::endl;
    return 0;
}

0 个答案:

没有答案