日誌 c 函式指標

2021-10-10 18:42:45 字數 2053 閱讀 4665

// 函式定義

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...