gpt4 book ai didi

c++ - 在类中重载运算符并返回对私有(private)值的引用

转载 作者:行者123 更新时间:2023-11-28 04:45:22 26 4
gpt4 key购买 nike

我正在使用的示例类:

class Vector
{
double val[3];
public:
double & operator [] (const unsigned int & index) {return this->val[index];};
}

然后我这样调用它:

Vector Example;
Example[0]=5;

像这样使用运算符重载是正确的还是违反封装,我应该使用不同的东西?我在这里使用了对私有(private)值的引用,我不确定这个实现。

最佳答案

到目前为止还不错...您还需要一个可以读取 const 对象的工具。此外,没有理由通过 const& 传递数组索引。此外,this-> 是隐含的。查看 std::vector<> 的成员函数签名.特别是operator[] .推送请求...

class Vector
{
double val[3];
public:
double& operator [] (size_t index) {return val[index];};
const double& operator [] (size_t index) const {return val[index];};
};

关于c++ - 在类中重载运算符并返回对私有(private)值的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49363252/

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