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++