【发布时间】:2015-10-23 14:22:04
【问题描述】:
我有以下情况:
工厂类实现:
class FactoryClassA {
public:
FactoryClassA(){};
~FactoryClassA(){};
ClassA create(double a, double b) {
return ClassA;
};
};
A 类实现:
class ClassA {
friend class FactoryClassA
~FactoryClassA() {}
private:
ClassA(double a = 0, double b = 0)
{
a(a),
b(b)
};
double a;
double b;
};
其他类实现:
class OtherClass {
public:
OtherClass() {
ClassFactory myClassAFactory;
aClassA = myClassAFactory.create();
}
~OtherClass() {};
private:
aClassA;
};
很遗憾,这不起作用。因为在OtherClass的(空)成员初始化列表中,调用了ClassA的空构造函数,不存在。
我之所以制作ClassAprivate的构造函数,是因为我希望用户只通过FactoryClassA创建ClassA的对象。
【问题讨论】:
-
那么,问题是什么?
-
请修正您的代码:缩进并添加
; -
1.您不要将 FactoryClassA 的析构函数放在另一个类中。 2. ClassFactory 未定义。 3.
friend应该在大括号之外。 -
我强烈建议你从可编译的代码开始。您发布的代码有多个语法错误。
-
编辑:3.友好的成员在括号中。您是否正在尝试将 destruct0r 提供给 ClassA?
标签: c++ oop polymorphism