C++ 单例模式-无法在没有对象的情况下调用成员函数
我对单例和面向对象编程都是新手,我的代码有点问题。我在这里搜索了“不能在没有对象的情况下调用成员函数”,但引擎返回了一些与单例无关的主题。 这是我的代码,编译器告诉我“不能在没有对象的情况下调用成员函数'void mySingleton::set_value(int)”。你对我如何解决这个问题有什么想法吗C++ 单例模式-无法在没有对象的情况下调用成员函数,c++,oop,pointers,singleton,member,C++,Oop,Pointers,Singleton,Member,我对单例和面向对象编程都是新手,我的代码有点问题。我在这里搜索了“不能在没有对象的情况下调用成员函数”,但引擎返回了一些与单例无关的主题。 这是我的代码,编译器告诉我“不能在没有对象的情况下调用成员函数'void mySingleton::set_value(int)”。你对我如何解决这个问题有什么想法吗 #include <iostream> class mySingleton{ private: int value; static mySing
#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;
}
#包括
迈辛格尔顿班{
私人:
int值;
静态mySingleton*_pInstance;
迈辛格尔顿(int值=0){Value=Value;}
公众:
~mySingleton(){value=0;}
静态mySingleton*getInstance()
{
如果(!\u pInstance)\u pInstance=new mySingleton;
返回站姿;
}
int get_value(){return value;}
无效集合_值(int x=0){value=x;}
};
mySingleton*mySingleton::_pInstance=NULL;
int main()
{
std::不能用调用get_value()
的方法调用它。谢谢,这很有效!但是如果我想声明一个或两个这种类型的对象,我知道它们会指向相同的地址,但是键入“mySingleton*a1;a1=new mySingleton;”不起作用。想声明一个或两个这种类型的对象吗?
如果这种类型的对象可能不止一个,那么它就不会是一个很单一的对象了,不是吗?我想我没有说清楚。当我说“我想声明一个或两个这种类型的对象”时我想说,我想创建两个对singleton的引用。对不起,我的错。mySingleton*a1=mySingleton::getInstance();mySingleton*a2=a1;
随心所欲地复制指针。