類的內部資料型別成員指標以及operator

2021-06-29 00:26:14 字數 1013 閱讀 5976

//指向成員的指標(成員指標)  pointer-to-member

//成員指標的語法要求:選擇乙個物件的同時,間接引用成員指標

#include

class objectclass

friend std::ostream& operator<<(std::ostream& os, const objectclass& oc)

};int main()

//operator->* 指標成員間接引用

//operator->* 比 operator->稍微簡單一點,因為不存在傳遞鏈,而且operator->*的形式更符合常規的函式呼叫

//現在我們來剖析operator->* 過載時到底需要為當前類補充哪些內容

//假設成員指標指向的是類中的函式

#include

class object

typedef int(object::*pointer_to_function_object)(int);

class pointer_to_function

pointer_to_function(object* op, pointer_to_function_object function)

//operator()

int operator()(int i)

};//返回當前類

pointer_to_function operator->*(pointer_to_function_object function)

};int main()

//vs2013 c++

/*結果:

class object::fun( 1 )

1class object::fun( 1 )

1class object::fun( 1 )1*/

//這個例子舉得不是很恰當(《thinking in c++》),因為物件訪問成員指標用的是操作符.*,而不是操作符.->*

//但是operator->* 確實比 operator->  好理解

指向類資料成員 類成員函式的指標

成員指標是指可以指向類的非靜態成員的指標,一般情況下指標指向乙個物件,但是成員指標指示的是類的成員,而非類的物件,類的靜態成員不屬於任何物件,因此無須特殊的指向靜態成員的指標,指向靜態成員的指標與普通指標沒有什麼區別,成員指標的型別囊括了類的型別以及成員的型別,當初始化乙個這樣的指標時,我們令其指向...

JS資料型別 以及 資料型別的轉換

ecmascript中將資料型別分為三類 基本資料型別,特殊資料型別和復合 引用 資料型別 一 基本資料型別 string 字串資料型別,放在單引號或者雙引號中 number 數字型別,包括int和float兩種 boolean 布林型別,只有true和false兩種值 二 特殊資料型別 undef...

再談指標 指標的資料型別

一 指標定義 分三部分 例如 int i,char str,float k 1 i,str,k 是指標型別變數 2 表示定義的是乙個指標變數 而非一般變數 3 int char float 是指標所指向的記憶體空間中存放的資料的型別。可以這樣理解 int char float 看成是資料型別,i,s...