gpt4 book ai didi

c++ - 重载运算符。 Const 参数会产生一些问题

转载 作者:行者123 更新时间:2023-11-28 00:30:40 26 4
gpt4 key购买 nike

class Vector{
......
.......
private:
int dim;
public:
int getDim() {
return this->dim;


}
const Vector operator+(const Vector& right){
this->getSize();
}
};

我在 this->getSize(); 中遇到了编译错误。这是事实,论证权利是常量。我不知道问题在哪里。我不尝试修改权利。

最佳答案

假设您有一个非常量方法 Vector::getSize()。您需要将其设为 const 以便它可以在 const 对象上调用,或者通过 const 引用或指向 const 的指针调用>。例如:

int getSize() const;
^^^^^

另请注意,返回 const 值没有多大意义(如果有它们,会抑制移动语义)。加法成员运算符的规范形式是

// const method: A = B + C should not modify B
Vector operator+(const Vector& right) const;
^^^^^

和非成员(member)

Vector operator+(const Vector& left, const Vector& right);

关于c++ - 重载运算符。 Const 参数会产生一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028752/

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