有什么区别
const string& getName() const {return name;}
Run Code Online (Sandbox Code Playgroud)
和
string& getName() const {return name;}
Run Code Online (Sandbox Code Playgroud)
const在开始和结束时意味着什么?
一个返回一个const引用,是一个const成员函数,另一个是const成员函数.
const string& getName() const {return name;}
Run Code Online (Sandbox Code Playgroud)
返回的string不能修改,方法是const(见下文).
string& getName() const {return name;}
Run Code Online (Sandbox Code Playgroud)
该方法无法修改非mutable类成员.
的const在函数签名的末端装置的方法是一个const成员函数,因此两者的方法是const成员函数。
将const在被返回无论开始手段是常量。
第一个示例是const方法,该方法返回对内部数据的const引用,因此是const正确的。
第二种是const方法,它返回对内部数据的非const引用。这不是const正确的,因为这意味着您将能够修改const对象的数据。
对const方法的调用不能更改实例的任何数据(可变数据成员除外),而只能调用其他const方法。
const方法可以在const或非const实例上调用,但是非const方法只能在非const实例上调用。