同一物件同一this的不同操作許可權

2021-10-05 03:11:47 字數 861 閱讀 9080

本文是針對自己在《c++ primer》一書的學習中在this指標這一小節的一些疑問的提出,以及最終解決的過程,希望能為大家提供一些有用經驗分享。

主要解決的疑問是:同一物件的不同成員函式之間是否是同乙個this指標,以及不同型別成員函式中的this指標有何不同?

說明

模擬比較

//模擬,例項化乙個物件

int i = 10;

//合法,模擬非常量成員函式的this指標指向乙個非常量物件

int * const p = &i;

//合法,模擬常量成員函式的this指標指向乙個常量物件

const int * const q = &i;

//合法,模擬非常量函式可以通過this指標修改物件的屬性

*p = 12;

/*非法,模擬常量函式不能通過this指標修改物件屬性,

指向常量的指標不允許通過該指針對指向的物件的值進行修改,

但是並沒有規定不能通過其他的方式進行修改,例如*p = 12。

其中p,q存放的是同乙個物件i的位址,但是他們對物件i的操作許可權有區別。*/

*q = 12;

struct sales_data

//2. 常量成員函式

sales_data* isbn() const

string bookno;

unsigned units_sold = 0;

double revenue = 0.0;

};void test1()

int main(void)

hashSet判斷是否是同一物件

將物件放入到集合中時,首先判斷要放入物件的hashcode值與集合中的任意乙個元素的hashcode值是否相等,如果不相等直接將該物件放入集合中。如果hashcode值相等,然後再通過equals方法判斷要放入物件與集合中的任意乙個物件是否相等,如果equals判斷不相等,直接將該元素放入到集合中,...

一 物件模型

在ruby程式中,物件僅僅是其大世界的乙個公民而已,除了物件還有其他語言構件,比如類 class 模組 module 以及例項變數 imstance variable 等,元程式設計操控的就是這些語言構件。所有語言構件存在於其中的系統稱為物件模型,它是ruby的靈魂。1 物件由一組例項變數和乙個類的...

《一》物件和封裝

物件導向 oop 可以從物件提煉出類的概念。物件是類的例項,類是物件的資料型別。從現實世界抽象出類 找出名詞,確定類 屬性 找出名詞,確定方法 剔除與業務無關的屬性和方法 訪問修飾符 構造方法名 3.3 1 靜態變數 不同的類之間需要對同乙個變數進行操作,把共享的變數用static修飾,那該變數為靜...