【发布时间】:2013-12-09 04:38:30
【问题描述】:
在我的班级中,我有一个这样的私人成员:ISymbolFactory& mSymbolFactory;
然后我有一个以 ISymbolFactory& 作为参数的 SetFactory 方法。
如果我想将 mSymbolFactory 设置为另一个对象(实现为 singelton)只能执行一次。如果我想覆盖成员变量,那么它就不会正确。 它会卡在我设置为此变量的 first 对象上。
成员方法调用如下:SetFactory(SomeFactory::GetInstance());
类:
class SymbolParser: public Object {
private:
ISymbolFactory& mSymbolFactory;
public:
SymbolParser();
~SymbolParser();
void SetFactory(ISymbolFactory& symbolFactory);
};
我的方法片段:
void SymbolParser::SetupSymbolParser(ISymbolFactory& symbolFactory) {
mSymbolFactory = symbolFactory;
.....
}
也许我不得不提到构造函数像这样初始化变量(这是我坚持的对象):
SymbolParser::SymbolParser() : mSymbolFactory(JavaFactory::GetInstance()) {}
【问题讨论】:
-
您需要从构造中初始化
mSymbolFactory,这是从另一个引用中分配它的唯一方法。 -
类中的对象引用必须分配给类的构造函数中的有效对象
-
但之后我必须更改它。那么我需要一个指针吗?
-
如果你以后必须改变它,你需要一个指针是的。
-
@schreda 是的,请看下面我的回答