Kev*_*vin 1 c++ operator-overloading
在我的一个项目中,我正在写一个包装器std::vector.我这样做是因为我使用的是齐次坐标,对于某些操作来说,暂时"忘记"第四个坐标更容易.
现在我偶然发现了一个问题.我有大量的作业,如下所示:
Vector v;
v(0) = 5;
v(1) = 6;
Run Code Online (Sandbox Code Playgroud)
等等.我还想做以下事情:
double x;
x = v(0);
Run Code Online (Sandbox Code Playgroud)
对于最后一件事,我可以重载()运算符,但是如何实现第一件事?(零和一个是索引).
只需返回参考.
class Vector
{
int data[4];
int & operator() (int index) { return data[index]; }
};
Run Code Online (Sandbox Code Playgroud)