Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以在不同的类中使用具有不同返回类型的类似成员?_C++ - Fatal编程技术网

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

C++ 是否可以在不同的类中使用具有不同返回类型的类似成员?,c++,C++,如果定义一个类multiA包含类a实例的向量,有没有办法让multiA继承(因为没有更好的术语)a的所有公共成员函数,并返回一个带有输出的std::vector #include <vector> class A { public: A(); float member1(); float member2(); // ... }; class multiA { public: multiA(); // ... // s

如果定义一个类
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;
};
#包括
甲级{
公众:
A();
浮动成员1();
浮动成员2();
// ...
};
多A类{
公众:
多重a();
// ...
//std::vector member1();
受保护的:
std::矢量数据;
};

我知道我可以在
multiA
中定义一个类似的成员函数,但是如果
A
的任何成员被重写,我就需要更改它,更一般的方法可能允许我使用
multiA
作为几个类的模板?我想知道是否有办法自动地创建代码< >多A<代码>的成员,基于<代码> A/C++ >并改变它们的返回类型。 也许如果你使用一些强大的宏魔法,你就能够为可能的类型自动执行,但是你需要付出的努力几乎是不值得的。

请注意,您首先需要定义
A
上可能的所有操作,以便在
std::vector
上实现,这已经很难实现自动化。

继承<代码>派生类:public Base等。但这不会更改每个继承成员的返回类型吗?我仍然需要重新定义每个成员,即使它是一个包装,以STL<代码>转换>代码>,例如,不,没有办法做到这一点在C++中。可以编写一个函数模板,将另一个函数和一个向量作为参数,并返回结果向量(我猜这是
std::transform
),但不可能生成一个自动使用它的类。不过,您可以编写一个程序(用您喜欢的任何语言)为类自动生成C++代码,即可以编写自定义预处理器。