是否可以在不同的类中使用具有不同返回类型的类似成员?

时间:2019-07-06 14:01:54

标签: c++

如果定义一个包含multiA类实例向量的类A,有一种方法可以使multiA“继承”(由于缺乏更好的用语), A的公共成员函数,返回一个std::vector和输出?

#include <vector>

class A {
 public:
    A();
    float member1();
    float member2();
    // ...
};

class multiA {
 public:
    multiA();

    // ...
    //  std::vector<float> member1();

 protected:
    std::vector<A> data;
};

我知道我只能在multiA中定义一个类似的成员函数,但是如果重写A的任何成员,我将需要对其进行更改,并且更通用的方法可能允许我使用{ {1}}作为几个类的模板?我想知道是否有办法基于multiAmultiA自动创建成员并更改其返回类型。

1 个答案:

答案 0 :(得分:1)

用普通的c ++是不可能的。 也许如果您使用了一些繁琐的宏魔术,甚至可以针对可能的类型将其自动化,但是您为此付出的努力几乎是不值得的。
请注意,您首先需要在A上定义所有可能的操作,然后才能在std::vector<A>上实现,这已经很难实现自动化。