我正在处理3D图形的3D矢量。 我创建了一个类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函数,它插入给定元素的向量的0位置......
我试过这个(i),显然没有用。我觉得这里有新手...... “vec”建在哪里?一个std :: vector?...我做这个简单的事情做得对吗?
答案 0 :(得分:1)
at(0) = x;
应该有效,因为在函数处可以返回非常量引用。