欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C++:函數(shù)指針進(jìn)階(二):指向?qū)ο蟪蓡T函數(shù)的指針-創(chuàng)新互聯(lián)

1:普通函數(shù)函數(shù)指針定義

我們知道 指向普通函數(shù)的指針,一般這么定義 :

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對搬家公司等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)營銷推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

數(shù)據(jù)類型名?(*?指針變量名)(參數(shù)列表)

void (*func)(int)

或者前面加一個? typedef?

typedef 數(shù)據(jù)類型名(*指針變量名)(參數(shù)列表)

typedef void (*funv) (int)

這兩種方式都可以,但是建議使用第二種方式:因為第二種方式相當(dāng)于給 函數(shù)指針定義了一個別名,能隱藏笨拙的語法構(gòu)造以及平臺一些相關(guān)的數(shù)據(jù)類型,可以使得代碼更美觀,可維護(hù)性、可移植性、可讀性更強(qiáng)。

實例:

如果不帶 typedef 關(guān)鍵字

//定義一個函數(shù)
void tech(void) { printf("tech dreamer"); }
void main()
{
    //定義一個指針,指針的名字叫func,它可以指向一個函數(shù),并通過函數(shù)指針調(diào)用該函數(shù)
    void (*func)();
    func = &tech; // 將func()函數(shù)的入口地址賦給指針變量pf,所以,pf就指向func()函數(shù)
    func();        //第一種調(diào)用方式,帶參數(shù)也可以
    (*func)();     //第二種調(diào)用方式,帶參數(shù)也可以
}

增加 typedef 關(guān)鍵字?

void tech(void) { printf("tech dreamer"); }
//命名一個類型,那么這個時候func不可以直接調(diào)用,而是一個類型了
typedef void (*func)();
void main()
{
    //定義一個可調(diào)用的指針變量(函數(shù)):myfunc (這個是主要區(qū)別)
    func myfunc;
    myfunc = &tech; //將func()函數(shù)的入口地址賦給指針變量pf,所以,pf就指向func()函數(shù)
    myfunc();         //第一種調(diào)用方式,帶參數(shù)也可以
    (*myfunc)();      //第二種調(diào)用方式,帶參數(shù)也可以
}
2:對象成員函數(shù)函數(shù)指針定義

標(biāo)題1介紹了,普通函數(shù)函數(shù)指針的定義,對象成員函數(shù)指針定義情況相比要復(fù)雜一些。 那么復(fù)雜在哪里了?

首先成員函數(shù)和普通函數(shù)的根本區(qū)別是:成員函數(shù)是類中的一個成員,編譯系統(tǒng)要求在指針賦值語句中,指針變量的類型必須與賦值右側(cè)函數(shù)的類型相匹配,具體以下三個方面需匹配。

  1. 函數(shù)參數(shù)的類型和參數(shù)的個數(shù)要匹配
  2. 函數(shù)返回值要匹配
  3. 函數(shù)所屬的類要匹配

所以定義指向公用的 成員函數(shù)的指針變量操作步驟為:

1:定義形式:數(shù)據(jù)類型名 (類名::? ?*指針變量名)(參數(shù)列表)

2: 函數(shù)指針賦值: 指針變量名 = &類名::成員函數(shù)名

可以讓它指向一個公用成員函數(shù),只需要把公用成員函數(shù)的入口地址賦值給一個指向公用成員函數(shù)的指針變量即可。

3:函數(shù)調(diào)用:(對象名.*函數(shù)指針變量名)()

思考:這樣定義的函數(shù)指針變量,指向了一個類中的一個函數(shù)。但是,當(dāng)一個類實例化為多個對象的時候,到底要怎樣使用該函數(shù)指針?函數(shù)指針指向哪一個對象函數(shù),所以,我們在調(diào)用函數(shù)指針的時候,就必須指定哪一個對象??聪旅孢@個例子:

// main.cpp


#include#includeclass  Student
{
public:
	// 定義成員變量
	char name[32];
	char addr[32];
	long number;

	Student(char* pn, char* pa, long n) {
		strcpy_s(name, pn);
		strcpy_s(addr, pa);
		number = n;
	}

	void print() {
		std::cout<< "name = "<< name<< std::endl;
		std::cout<< "addr = "<< addr<< std::endl;
		std::cout<< "number = "<< number<< std::endl;
	}

private:

};
// 定義Student類中的一個函數(shù)指針
void(Student::* pFunc)();

int main(void) {
	std::string name = "xiaoming";
	std::string addr = "wuhan";
	Student stu((char*)name.c_str(),(char*)addr.c_str(), 123456789);

	// 給函數(shù)指針賦值
	pFunc = &Student::print;
	// 通過函數(shù)指針調(diào)用成員函數(shù)(且必須指定具體類對象)
	(stu.*pFunc)();
	return 0;
}


// 打印結(jié)果
name = xiaoming
addr = wuhan
number = 123456789

這里有個知識點:大家可以好好體會。

對象的成員函數(shù)不是存放在對象的空間中的,而是存放在對象外的空間中。如果有多個同類的對象,他們公用同一個函數(shù)代碼段(類的成員函數(shù)),那么他們不是屬于某一個對象,而是屬于該類,由所有的類對象共享。因此,Student類中的 print()成員函數(shù),不是屬于stu對象的,而是屬于 Student類。所以,給指針變量 pFunc賦值的地址,應(yīng)該是Student類公用的函數(shù)代碼段的入口地址。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站題目:C++:函數(shù)指針進(jìn)階(二):指向?qū)ο蟪蓡T函數(shù)的指針-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://chinadenli.net/article30/ejgpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站建站公司、定制網(wǎng)站Google、品牌網(wǎng)站設(shè)計、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
国产一区二区三区成人精品| 国产亚洲精品一二三区| 男女午夜福利院在线观看| 国产一区二区三区四区免费| 成人你懂的在线免费视频| 亚洲男人天堂成人在线视频 | 国产毛片对白精品看片| 男人把女人操得嗷嗷叫| 丰满少妇被猛烈插入在线观看| 高潮日韩福利在线观看| 一区二区三区亚洲天堂| 亚洲一区二区三区福利视频| 亚洲精品中文字幕一二三| 国产无摭挡又爽又色又刺激| 国产女同精品一区二区| 日韩不卡一区二区视频| 91人妻人人揉人人澡人| 亚洲欧美日本国产不卡| 久久精品中文字幕人妻中文| 欧美自拍偷自拍亚洲精品| 国产内射在线激情一区| 亚洲男人天堂网在线视频| 国产精品午夜一区二区三区| 国产一区欧美一区日韩一区| 国产精品人妻熟女毛片av久久| 亚洲成人免费天堂诱惑| 国产一区二区三区色噜噜| 欧美人禽色视频免费看| 91日韩在线观看你懂的| 加勒比日本欧美在线观看| 亚洲精品国男人在线视频| 国产精品自拍杆香蕉视频| 最新午夜福利视频偷拍| 一区中文字幕人妻少妇| 免费久久一级欧美特大黄孕妇| 香蕉久久夜色精品国产尤物| 麻豆印象传媒在线观看| 成年人免费看国产视频| 欧美日韩国产的另类视频| 国产av天堂一区二区三区粉嫩| 免费特黄欧美亚洲黄片|