求类的对象之间,不同类的对象之间如果共享一个对象的方法?
标题说得不清楚,举个例子吧
比如一个一个类的对象:
class shared{};
class a{};
class b{};
shared shared_object;
a a_object1,a_object2;
b b_object;
请问如何建立shared,a,b这三个类之间的关系,使得对象a_object1,a_object2,b_object,能共享对象shared_object?
[解决办法]
你用Singleton不就得了。。。
[解决办法]
方法1:让a类和b类分别有一个指针,运行时让他们指向同一个shared对象。
方法2:让a类和b类分别从c类继承,让c类有一个静态的shared对象。
[解决办法]
甘草是做把shared为做成singleton,那就不仅仅是针对a和b了,而是整个程序中只有一份singleton的类,你可以看看《设计模式》一书上的相关介绍。
[解决办法]
一个简单的singleton
//shared.h
class shared
{
public:
static shared* instance();
protected:
shared();
};
//shared.cpp
#include "Singleton.h "
shared *shared::instance()
{
static shared _instance;
return &_instance;
}
shared::shared()
{
}
需要shared时,只需要
shared* ps = shared::instance();