// 函式定義
intmyfunc
(const string& s1,
const string& s2)
// 初始化 1
int(
* my_func)
(const string&
,const string&
)= myfunc;
// 初始化 2
typedef
int(
*myfunctype)
(const string&
,const string&);
myfunctype my_func = myfunc;
// 賦值1 &2
myfunctype my_func = myfunc;
myfunctype my_func =
&myfunc;
// 呼叫 1&2
myfunc
("abc"
,"z");
my_func
("abc"
,"z");
// 函式指標的陣列 1& 2
int(
*my_func_array[3]
)(const string&
,const string &);
//with typedef
myfunctype my_func_array[3]
;//函式指標用作函式返回值的型別 1&2
int(
*new_func
(int*,
int))(
const string&
,const string &);
myfunctype new_func
(int*,
int)
;//tpyedef 很好用
二、 指向類成員的指標
1.1 指向類成員函式的指標
簡單的講,指向類成員函式的指標與普通函式指標的區別在於,前者不僅要匹配函式的引數型別和個數以及返回值型別,還要匹配該函式指標所屬的類型別。非靜態的成員函式必須被繫結到乙個類的物件或者指標上,才能得到被呼叫物件的this指標,然後才能呼叫指標所指的成員函式(我們知道,所有類的物件都有自己資料成員的拷貝,但是成員函式都是共用的,為了區分是誰呼叫了成員函式,就必須有this指標,this指標是隱式的新增到函式引數列表裡去的)。
typedef 返回值 (**類名:: **指標型別名)(引數列表);
//與普通函式作為區分,指向類的成員函式的指標只需要在指標前加上類型別即可 宣告
classa;
typedef
void
(a::
*myfunctype)
(int);
classa}
;int
main()
1.2 指向類資料成員的指標
classa;
typedef
int(a::
*mydatatype)
;class
aint memberdata;};
intmain()
類的靜態成員和普通成員的區別在於,他們是不依賴於具體物件的,所有例項化的物件都共享同乙個靜態成員,所以靜態成員也沒有this指標的概念。
所以,指向類的靜態成員的指標就是普通的指標。
classa;
// 同普通指標
typedef
int(
*myfunctype)()
;typedef
const
int*mydatatype;
classa;
static
const
int memberdata =10;
};intmain()
總結:
1)靜態的和普通的函式指標沒區別;
2)非靜態的加乙個類侷限一下即可。
參考文章:
c 日誌函式
include void openlog const char ident,int option,int facility ident 表示返回指定的字串,當ident為null時,返回的是程式的名稱。option 選項 log cons logger服務寫入異常時,直接寫到系統控制台 log nd...
C 指標函式和函式指標
1 指標函式 1 基本概念 指標函式 顧名思義就是帶有指標的函式,即其本質是乙個函式,只不過這種函式返回的是乙個對應型別的位址。2 定義式 type func type type 如 int max int x,int y 3 例子詳解 cpp view plain copy 1.include 2...
c 指標函式和函式指標
函式指標與指標函式 1 函式指標 形式 返回型別 函式名 參數列 一種特殊的指標,它指向函式的入口 定義乙個函式指標p,只能指向返回值為int,形參為兩個int的函式 輸出結果 include stdafx.h include using namespace std int p int,int in...