c++中的const函数

const function in C++

本文关键字:函数 const 中的 c++      更新时间:2023-10-16
const Integer opeator+(const Integer& left, const Integer& right){
    return Integer(letf.i + left.right);
}

如果函数类型是const Integer,为什么函数返回非const对象Integer?

如果函数类型是const Integer,为什么函数返回非const对象Integer?

确实返回一个常量Integer,这是函数体中Integer右值的复制。还要注意,您可能想说的是right.i而不是left.right, operator+而不是opeator+, left.i而不是letf.i

函数返回return语句中指定的Integer的副本。值是否为const并不重要,因为它正在被复制到const Integer中。

类似如下:

const Integer result = Integer(5);

右边的Integer不需要是const,因为它的值会被复制到result中。