C 中的this的個人理解

2021-06-26 18:37:41 字數 628 閱讀 8875

今天看到乙個函式如下,有點不太理解,然後就遇到了this

的有關問題。

下面是乙個在類中定義的成員函式:

std::

string  isbn

()const 

我的問題是這個const

是修飾誰的?有什麼作用?

通過查資料的得到如下結果:

這個const

是修飾this

的,具體怎麼修飾如下:在預設情況下

this

的型別是指向類型別非常量版本的常量指標,換句話說

this

是乙個常量指標,但它指向的是非常量,例如乙個類為

effective

,則this

的型別為

effective* const

。之所以用

const

去修飾this

,是為了把

this

型別轉換為

const effective* const

型別,這樣做的作用是能夠提高函式的靈活性。這樣的函式稱為常量成員函式。 注:

常量物件以及常量物件的引用或指標都只能呼叫常量成員函式。非常量物件沒有限制,既可以呼叫一般成員函式,也可以呼叫常量成員函式,這就是靈活性的體現。

C 中的虛方法的使用個人理解

虛方法 使用virtual關鍵字定義,當子類繼承父類時,可以對父類中的虛方法進行重寫。如下面 中的類b,它繼承類a,類a實現了介面i 實現了介面中的foo 方法 在類a中使用virtual將foo 方法定義為虛方法,故在子類b中就可以重寫foo 方法。這樣就不會執行類a中的foo 方法,只執行類a中...

AIDL中Binder的個人理解

遠端service與客戶端通訊時,繫結服務後,服務端返回的binder物件,被客戶端接收後,客戶端呼叫該binder的物件的方法其實就是呼叫的服務端的方法。此時,若客戶端呼叫服務端的方法時傳入了客戶端實現的介面物件,服務端呼叫該介面物件的方法時,其實就是服務端呼叫的客戶端的方法 兩種情況的 被呼叫方...

C語言引用 的個人理解

因為我學藝不精,所以有時候交換值函式時有時候會寫成下面這樣int main int argc,const char argv insert code here.int x 3 int y 5 swap x,y cout 這樣就能夠成功交換x和y的值。為什麼會有不同的效果呢,按照我個人的理解是,上面的...