gpt4 book ai didi

c++ - 我如何扩展像 Armadillo 这样的库中的类?

转载 作者:行者123 更新时间:2023-11-28 07:09:40 24 4
gpt4 key购买 nike

我正在处理 3D 图形的 3D vector 。我创建了一个类 vec3 来添加函数,例如 getX、getY、getZ、setX、setY、setZ、setXYZ...等等。

#include <armadillo>
using namespace arma;

// An extension to VEC class for Armadillo for 3D graphics.
class vec3 : public vec
{
public:

// Constructor inits vector to 0,0,0
vec3() : vec(3,fill::zeros) {}
~vec3(void){};

double getX() const { return at(0); }
double getY() const { return at(1); }
double getZ() const { return at(2); }

void setX(double x){ ?????? = x; }
};

我发现自己迷失在一个我从未发现的非常不寻常的情况中:

我如何在类内使用 (i) 访问元素...?

对于 getter 函数,如您所见,这很容易,因为我们至少有一个“at”函数。但是我如何创建一个 setX 函数,将给定元素插入 vector 的 0 位置...

我试过 this(i) ,显然没有用。我在这里感觉很新手......“vec”建在哪里? std::vector?...我做这个简单的事情是正确的吗?

最佳答案

at(0) = x; 如果 vec 派生自 std::vector 应该可以工作,因为 at 函数可以返回非常量引用。

关于c++ - 我如何扩展像 Armadillo 这样的库中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209799/

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