发布网友 发布时间:2024-10-23 21:54
共1个回答
热心网友 时间:2024-10-27 13:40
T const&与T &的区别是一个加了常量限定符,一个没加,也相应的一个是常引用,不能修改其值,一个为引用,可以修改值。
如果返回值是常引用,说明不能把返回值作为左值,也就是
a.top() = 10;//如果a 为常对象,这句是非法的
如果返回值是引用,就可以作为左值:
a.top() = 10; //如果a 不是常对象,这句把a的data_[top_-1]修改为10了;
常对象就是定义类对象时加上const限定符。
const CA a;
常对象只能调用常成员函数,也就是在函数未尾加了const限定符的成员函数,而在常成员函数里不能修改类的数据成员。
不知这样解释能不能理解。