C++中boost向量的子类
Subclass of a boost vector in C++
如何创建boost::numeric::ublas::c_vector<float, 3>
的子类,该子类的三个元素可以用.x.y或.z访问,并且具有vec3(float x, float y, float z);
形式的构造函数。我想使用boost向量,因为我不想自己为一个类的所有运算符和数学函数编写函数,而且我已经在使用boost库了。
例如:
foo = vec3(2.5f, 0.0f, 0.0f);
bar = vec3(2.0f, 0.0f, 0.0f);
foo += bar;
cout << foo.x; // prints 4.5
不要创建子类,因为基类成员函数是非虚拟的。在这种情况下,更喜欢composition(使此类的对象成为类的成员)。Herb Sutter还建议永远不要派生具体的类(尤其是在C++中,因为存在一个虚拟/非虚拟成员函数系统)。
相关文章:
- C++ 将子类的对象添加到父类的向量中
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 从父类的向量访问子类函数,而无需向下转换
- 如何识别从不同子类覆盖的向量类?
- C++11 向量包含 2 个不同的子类,但不能同时进行
- 带有基类指针的强制转换向量,指向子类
- C++ 子类无法访问其他子类向量
- 将子类添加到基类向量C++不起作用
- 如何将子类向量传递给需要基类向量的函数
- 制作可以存储子类对象的超类类型的向量
- <T2> <T1>当 T2 是 C++ 中 T1 的子类时,如何使用向量代替向量?
- 将子类添加到基类向量
- 将子类存储在超类向量中
- 创建子类的向量
- 制作不同子类实例的向量
- 模板向量 ->使用子类的成员
- C++中boost向量的子类
- 如何迭代定义为超类的向量,但调用子类方法
- 用简单的操作转换子类向量时得到错误