在构造函数Method中返回一个子类

时间:2013-10-30 18:25:39

标签: java c++ algorithm design-patterns constructor

我有一个基类,当我调用构造函数来访问系统时,根据配置并返回它的子类。 主要思想和类是抽象的自己的工厂,并根据需要返回到子类,具体取决于配置系统。

我将我的想法用C + +表示,不一定是特定于他的东西,而是用于其他语言的一般方法,如java等。

可能吗?

示例:

class system {
    public:
        Config config;
}

class Base {
    public:
        Base() {
            if(System.getInstance().config == Config.FooMode) {
                Foo foo = new Foo();
                return foo;
            }
        };
};

class Foo: public Base {
    public:
        float a;
        float b;
        float c;
}

class Boo: public Base {
    public:
        float d;
        float f;
        float g;
}

int main() {
    Point point = new Point();
    return 0;
}

2 个答案:

答案 0 :(得分:2)

不可能。构造函数不返回任何内容,使用另一种方法作为factory方法。

class Base
{
  Foo makeFoo()
  {
  }
  ...
};

我混淆了你的代码是C ++或Java,所以不知道我应该使用什么代码。

答案 1 :(得分:0)

您可能需要了解基本的OO概念。 Constructors不返回任何内容。好吧,从某种意义上说,他们确实会返回instance的{​​{1}},但您无法使用class类型的任何return类型。甚至不是constructors。为什么?阅读THIS