我有以下情況:使用工廠創建一個類,這是在其他類中使用
工廠類的實現:
class FactoryClassA {
public:
FactoryClassA(){};
~FactoryClassA(){};
ClassA create(double a, double b) {
return ClassA;
};
};
ClassA的實現:
class ClassA {
friend class FactoryClassA
~FactoryClassA() {}
private:
ClassA(double a = 0, double b = 0)
{
a(a),
b(b)
};
double a;
double b;
};
OtherClass實施:
class OtherClass {
public:
OtherClass() {
ClassFactory myClassAFactory;
aClassA = myClassAFactory.create();
}
~OtherClass() {};
private:
aClassA;
};
不幸的是,這是行不通的。因爲在OtherClass
的(空)成員初始值設定項列表中,將調用ClassA
的空構造函數,該構造函數不存在。
我之所以構造出ClassA
private
,是因爲我希望用戶只通過FactoryClassA
創建ClassA
的對象。
那麼,什麼是問題? – ergonaut
請修復您的代碼:縮進並添加';' – Walter
1.您不要將FactoryClassA的析構函數放在另一個類中。 2. ClassFactory未定義。 3.「朋友」應該在大括號之外。 –