gpt4 book ai didi

c++ - C++中boost vector 的子类

转载 作者:行者123 更新时间:2023-11-28 03:14:40 25 4
gpt4 key购买 nike

如何创建 boost::numeric::ublas::c_vector<float, 3> 的子类?可以使用 .x .y 或 .z 访问其三个元素,并具有 vec3(float x, float y, float z); 形式的构造函数.我想使用 boost vector ,因为我不想自己编写一个类的所有运算符和数学函数的功能,而且我已经在使用 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

最佳答案

不要创建子类,因为您将来可能会遇到问题,因为基类成员函数是非虚拟的。在这种情况下更喜欢组合(使此类的对象成为您的类的成员)。 Herb Sutter 还建议永远不要派生具体类(尤其是在 C++ 中,因为存在虚拟/非虚拟成员函数系统)。

关于c++ - C++中boost vector 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17297435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com