引數對應和 this 指標
類別成員函式被以不同的方式,取決於是否宣告為static。 因為靜態函式具有隱含引數提供this指標,非靜態函式都視為有一個更多的引數比靜態函式。 否則,他們會宣告具有相同。
這些非靜態成員函式需要的隱含this指標符合透過該函式被呼叫時,該物件型別,或是多載的運算子,它們需要第一個引數符合套用運算子的物件。 (如需有關多載運算子的詳細資訊,請參閱多載運算子。)
不同於其他多載函式中的引數,產生暫時的物件,且沒有轉換時嘗試比對,來嘗試this指標引數。
當– >成員選取運算子用來存取的成員函式中, this指標引數的一種class-name* const。 If the members are declared as const or volatile, the types are const class-name* const and volatile class-name * const, respectively.
.成員選取運算子的運作方式完全相同,除了可隱含& (位址) 運算子為物件名稱作為前置詞。 下列範例會示範如何運作:
// Expression encountered in code
obj.name
// How the compiler treats it
(&obj)->name
左邊的運算元–>*和.* (至成員的指標) 運算子都被視為相同的方式,與.和–> (成員選取範圍) 運算子,以便根據引數對應。