C ++将float分配给成员数据

时间:2012-01-24 02:25:36

标签: c++

我有一个包含x,y和z的自定义Vector类。它们存储在名为data的int数组中。所以基本上是data[0] = xdata[1] = ydata[2] = z。很简单。

我的任务是编写一个允许以下内容的函数:

vector[0] = 2.0f;

哪个应该使向量的x值为2.0。我已经重载了[]运算符,以便它返回一个浮点数(它本质上是一个getter方法 - 例如:

cout << vector[0];

会打印矢量的x值。)

我对如何将浮动分配给xyz感到困惑。我想我需要重载一个运算符(也许是=),但我不确定。我是否正确地思考这个问题?

1 个答案:

答案 0 :(得分:3)

为此,您需要提供operator[]版本,该版本返回对您要分配给的成员的引用。例如:

class vector {
public:
    float& operator[](int pos) {
        return data[pos];
    }
    //You should also provide a const qualified overload
    //so that operator[] can be called on a const vector
    float operator[](int pos) const {
        return data[pos];
    }
private:
    float data[3];
};
相关问题