Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Inheritance 允许使用除一个之外的向量函数吗?_Inheritance_Vector_Overloading - Fatal编程技术网

Inheritance 允许使用除一个之外的向量函数吗?

Inheritance 允许使用除一个之外的向量函数吗?,inheritance,vector,overloading,Inheritance,Vector,Overloading,我迷路了,我有一个类,有三个向量对象 class A { vector<int> h1; vector<double> h2; vector <int> h3; } A类 { 载体h1; 载体h2; 载体h3; } 我想拥有(继承)所有向量函数(推、大小等),但“擦除”函数除外 起初,我公开了这些对象,但后来可以使用擦除功能, 我不知道继承如何使用向量模板 当我把这些东西保密的时候。。我发现对于我拥有的每一个对象,我会再次自我重载所

我迷路了,我有一个类,有三个向量对象

class A
{
    vector<int> h1;
    vector<double> h2;
    vector <int> h3;
}
A类
{
载体h1;
载体h2;
载体h3;
}
我想拥有(继承)所有向量函数(推、大小等),但“擦除”函数除外

起初,我公开了这些对象,但后来可以使用擦除功能, 我不知道继承如何使用向量模板

当我把这些东西保密的时候。。我发现对于我拥有的每一个对象,我会再次自我重载所有向量函数,这对性能也不好,因为会调用两个函数而不是一个


在我的程序中,性能是一个非常关键的要求,因为每个函数都要进行数千次计算。。把这个数字翻一番对它一点好处都没有。

你担心性能太快,而且在错误的领域。您为类A编写的方法可以内联,以避免函数调用开销,这很小,几乎肯定不值得担心

此外,您有组合,而不是继承

struct A {
  void pop_back() { // example function from vector's interface
    h1.pop_back();
    h2.pop_back();
    h3.pop_back();
  }

private:
  vector<int> h1;
  vector<double> h2;
  vector<int> h3;
};
结构A{ void pop_back(){//向量接口中的示例函数 h1.pop_back(); h2.pop_back(); h3.pop_back(); } 私人: 载体h1; 载体h2; 载体h3; };
如果您正在对数字序列进行大量计算(“数学向量”,std::vector就是从中得名的),请查看一个库,例如。

非常感谢,这是非常有用的,我一定会了解Blitz++