函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数中,目的是为了实现链式表达。
例如:
class A
{
A & operate = (const A &other); // 赋值函数(请问这里实现什么?)
};
A a, b, c; // a, b, c 为A 的对象
a = b = c; // 正常的链式赋值
(a = b) = c; // 不正常的链式赋值,但合法(这两个赋值有什么问题?)
如果将赋值函数的返回值加const 修饰,那么该返回值的内容不允许被改动。上例中,语句 a = b = c 仍然正确,但是语句 (a = b) = c 则是非法的。
...全文
18210打赏收藏
关于const的函数引用传递,请赐教
函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数中,目的是为了实现链式表达。 例如: class A { A & operate = (const A &other); // 赋值函数(请问这里实现什么?) }; A a, b, c; // a, b, c 为A 的对象 a = b = c; // 正常的链式赋值 (a = b) = c; // 不正常的链式赋值,但合法(这两个赋值有什么问题?) 如果将赋值函数的返回值加const 修饰,那么该返回值的内容不允许被改动。上
[Quote=引用楼主 houbin01 的回复:]
函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数中,目的是为了实现链式表达。
例如:
class A
{
A & operate = (const A &other); // 赋值函数(请问这里实现什么?)
};
A a, b, c; // a, b, c 为A 的对象
[Quote=引用楼主 houbin01 的回复:]
函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数中,目的是为了实现链式表达。
例如:
class A
{
A & operate = (const A &other); // 赋值函数(请问这里实现什么?)
};
A a, b, c; // a, b, c 为A 的对象
a = b = c; // 正常的链式赋值
[/Quote]
A & operate = (const A &other); //简单的复制;
(a = b) = c;//复制的顺序不同;
如果将赋值函数的返回值加const 修饰,那么该返回值的内容不允许被改动
//返回引用的const那么是被编译器禁止修改const的数据的。