目錄
1.static方法和普通成員方法有什麼區別?
答:
靜態成員函數不包含this指針,靜態成員函數屬於這個類,不再僅僅屬於對象。因此靜態成員方法和普通成員方法的的區別是。
靜態成員函數不包含指向對象的this指針,普通成員函數包含一個指向對象的this指針,同時靜態成員函數不可以調用非靜態成員變量。
2.const成員方法和普通成員方法有什麼區別?
const成員方法即在函數的的末尾加上const關鍵字:
如:
void Test() const{}
①在const成員方法裏面,不可以對成員變量作修改。
②在const成員方法裏面不可以調用普通成員方法,但是普通成員方法可以調用const成員方法。
3.static和const能不能同時修飾一個成員方法?
答:答案是否定的。C++編譯器在實現const成員方法的時候爲了防止成員變量被修改,會在函數中添加一個隱士的const *this指針。但當一個成員方法聲明爲staic型的時候,它的所屬者爲類,不再爲對象所擁有,所以static成員方法不具有this指針,這一點和const成員方法衝突,因此const和static不能同時修飾一個成員方法。