最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++指向類成員的指針詳解

 更新時間:2021年09月16日 15:23:33   作者:weixin_41914179  
指向類成員的指針總的來講可以分為兩大類四小類(指向數(shù)據(jù)成員還是成員函數(shù),指向普通成員還是靜態(tài)成員),希望本片文章能給你帶來幫助

序言:在C++中,可以定義一個指針,使其指向類成員函數(shù)或或成員函數(shù),然后通過指針來訪問類的成員,這包括指向?qū)傩猿蓡T的指針和指向成員函數(shù)的指針。

一.指向普通變量和函數(shù)的指針

指向普通變量的指針

int a=100;
int *p = &a;

指向函數(shù)的指針(即函數(shù)指針)

int(*p)(int, int);

這條語句的理解:定義了一個指向函數(shù)的指針變量p,首先它是一個指針變量(*p),其次前面的int表示指針變量可以指向返回類型為int型的函數(shù),后面括號中的兩個int表示這個指針變量可以指向兩個參數(shù)都是int型的函數(shù)。所以合起來的意思就是:定義了一個指針變量p,該指針變量可以指向返回值類型為int型,且有兩個整形參數(shù)的函數(shù),p的類型為int(*)(int, int)

函數(shù)指針的定義方式為:

函數(shù)返回值類型 (* 指針變量名) (函數(shù)參數(shù)列表);

示例

int Func(int x);   /*聲明一個函數(shù)*/
int (*p) (int x);  /*定義一個函數(shù)指針*/
p = Func;          /*將Func函數(shù)的首地址賦給指針變量p*/

二.指向類成員的指針

1.指向類數(shù)據(jù)成員的指針

//定義和賦值(和類相關(guān))
數(shù)據(jù)類型 類名:: *指針名 = &類名::成員名
//使用(和對象相關(guān))
//由于類不是運行時 存在的對象。因此,在使用這類指針時,需要首先指定類的一個對象,然后,通過對象來引用指針所指向的成員。
類對象名.*指向非靜態(tài)數(shù)據(jù)成員的指針
類對象指針->*指向非靜態(tài)數(shù)據(jù)成員的指針

2.指向類成員函數(shù)的指針

//定義和賦值(和類相關(guān))
函數(shù)返回類型名 (類名::*函數(shù)指針名)(參數(shù)列表) = &類名::成員函數(shù)名
//使用(和對象相關(guān))
//由于類不是運行時存在的對象。因此,在使用這類指針時,需要首先指定類的一個對象,然后,通過對象來引用指針所指向的成員。
(類對象名.*指向非靜態(tài)成員函數(shù)的指針)(參數(shù)列表)
(類對象指針->*指向非靜態(tài)成員函數(shù)的指針)(參數(shù)列表)

示例

class Stu
{
public:
	Stu(string sn,int ia):
	    name(sn),age(ia)
	{
	}
	void print()
	{
		cout<<name<<"---"<<age<<endl;
	}
public:
	string name;
	int age;
};
int main()
{
	int a=100;
	int *p = &a;
	Stu s1("zhang",14);
	Stu s2("lili",19);
	Stu * pp = new Stu("wojiushiwo",30);
	int Stu::*pa = &Stu::age;  //pa是指向類成員變量age的指針變量
	string Stu::*pb = &Stu::name;  //pb是指向類成員變量name的指針變量
	cout<<s1.name<<s2.name<<endl;  //值:zhanglili
	cout<<s1.*pa<<"---"<<s1.*pb<<endl;  //值: 14---zhang 
	void (Stu::*fa)()=&Stu::print;  //fa是指向類成員函數(shù)的函數(shù)指針
	(s1.*fa)();   //值:zhang---14
	(s2.*fa)();   //值:lili---19
	(pp->*fa)(); //值:wojiushiwo---30
	return 0;
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C語言調(diào)用Python代碼的方法

    C語言調(diào)用Python代碼的方法

    這篇文章主要介紹了C語言調(diào)用Python代碼的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C語言實現(xiàn)萬年歷源碼

    C語言實現(xiàn)萬年歷源碼

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)萬年歷源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C語言字符串常用處理函數(shù)小結(jié)

    C語言字符串常用處理函數(shù)小結(jié)

    C語言中有很多內(nèi)置的字符串處理函數(shù),這些函數(shù)都在<string.h>頭文件中聲明,本文給大家介紹C語言字符串常用處理函數(shù)小結(jié),感興趣的朋友一起看看吧
    2023-11-11
  • C語言中函數(shù)的聲明、定義及使用的入門教程

    C語言中函數(shù)的聲明、定義及使用的入門教程

    這篇文章主要介紹了C語言中函數(shù)的聲明、定義及使用的入門教程,重點講述了main函數(shù)的相關(guān)知識,需要的朋友可以參考下
    2015-12-12
  • C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎

    C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎

    這篇文章主要介紹了C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門,這里以一維數(shù)組作為基本條件進行例子講解,需要的朋友可以參考下
    2021-09-09
  • 深入理解c++模板中的class與typename

    深入理解c++模板中的class與typename

    在c++Template中很多地方都用到了typename與class這兩個關(guān)鍵字,而且好像可以替換,是不是這兩個關(guān)鍵字完全一樣呢?下面這篇文章主要給大家介紹了關(guān)于c++模板中class與typename的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • c++制作的時間函數(shù)類

    c++制作的時間函數(shù)類

    本文給大家分享的是一個個人使用C++編寫的時間函數(shù)類,主要是實現(xiàn)了類的定義和調(diào)用,相比較來說還算比較復(fù)雜的時間類了,推薦給小伙伴們,有需要的朋友可以參考下。
    2015-03-03
  • C語言中回調(diào)函數(shù)的含義與使用場景詳解

    C語言中回調(diào)函數(shù)的含義與使用場景詳解

    這篇文章主要為大家詳細介紹了C語言中回調(diào)函數(shù)的含義與使用場景,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++選擇文件夾代碼的封裝

    C++選擇文件夾代碼的封裝

    這篇文章主要介紹了C++選擇文件夾代碼的封裝,實例展示了將選擇文件夾功能代碼封裝為一個類并對其進行實例化調(diào)用的過程,對于學習C++程序設(shè)計有不錯的參考價值,需要的朋友可以參考下
    2014-10-10
  • c++靜態(tài)局部變量和靜態(tài)函數(shù)示例

    c++靜態(tài)局部變量和靜態(tài)函數(shù)示例

    這篇文章主要介紹了c++靜態(tài)局部變量和靜態(tài)函數(shù)示例,需要的朋友可以參考下
    2014-04-04

最新評論

修水县| 睢宁县| 政和县| 永福县| 商都县| 惠东县| 兴安盟| 临海市| 双流县| 阳曲县| 甘南县| 比如县| 石楼县| 霍州市| 图木舒克市| 韶山市| 柳州市| 河源市| 连江县| 安丘市| 许昌市| 长岛县| 曲周县| 西藏| 台东县| 泉州市| 育儿| 县级市| 施秉县| 阳泉市| 荆州市| 玛沁县| 蒙城县| 苍溪县| 长治县| 西峡县| 大英县| 汾西县| 永年县| 五大连池市| 吐鲁番市|