如果定义一个包含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}}作为几个类的模板?我想知道是否有办法基于multiA
为multiA
自动创建成员并更改其返回类型。
答案 0 :(得分:1)
用普通的c ++是不可能的。
也许如果您使用了一些繁琐的宏魔术,甚至可以针对可能的类型将其自动化,但是您为此付出的努力几乎是不值得的。
请注意,您首先需要在A
上定义所有可能的操作,然后才能在std::vector<A>
上实现,这已经很难实现自动化。