[英]I can't find the utility of the second const in this part of c++ code, can someone explain please?
const T&top()const {return m_Data.back(); }
這意味着成員函數中的this
指針是const
。 換句話說,調用不會修改對象。 (以及它返回的任何引用/指針也將是const
)。
如果是方法,則在類內部使用此語法。 標記為const
方法(代碼中的第二個const
)不能修改對象的屬性,只能讀取。 如果將對象實例化為const
則Const方法是唯一可調用的方法。 對於intance:
class A {
public:
void put(int v) {
var = v;
}
int read() const {
return var;
}
private:
int var;
}
int main() {
A obj;
obj.put(3);
const A obj2 = obj;
obj2.read(); // OK, returns 3;
obj2.put(4); // Compile time error!
}
Michael的回答幾乎涵蓋了所有內容,但還有其他一些方面:
只有成員函數可以是const限定的,非成員函數不能。 C ++也是如此。 C沒有成員函數的概念,因此他們不能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.