今天看到乙個函式如下,有點不太理解,然後就遇到了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的值。為什麼會有不同的效果呢,按照我個人的理解是,上面的...