国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

指向類成員函數的指針其實并非指針

2020-01-26 15:56:02
字體:
來源:轉載
供稿:網友

1、與常規指針不同,一個指向成員的指針并不指向一個具體的內存位置,它指向的是一個類的特定成員,而不是指向特定對象里的特定成員。通常最清晰的做法,是將指向數據成員的指針看作為一個偏移量。

這個偏移量告訴你,一個特定成員的位置距離對象的起點有多少個字節。

2、給定一個成員在類內的偏移量,為了訪問位于那個偏移量的數據成員,我們需要該類的一個對象的地址。這時候就需要 .*和->*的操作。pC->*pimC,請求將pC內的地址加上pimC內的偏移量,為的是訪問pC所指向的C對象中適當的數據成員。aC.*pimC,請求aC的地址加上pimC中的偏離量,也是為了訪問pC所指向的C對象中適當的數據成員。
Ps:
*成員指針解引用操作符(.*)從對象或引用獲取成員
*成員指針箭頭操作符(->*)通過對象的指針獲取成員

3、獲取非靜態成員函數的地址時,得到的不是一個地址,而是一個指向成員函數的指針。

4、為了對一個指向成員函數的指針進行解引用,需要一個對象或一個指向對象的指針。對于指向數據成員的指針的情形,為了訪問該成員,需要將對象的地址和成員的偏移量相加。對于指向成員函數的指針的情形,需要將對象的地址用作this指針的值,進行函數調用,以及作為其他用途。

5、一個指向成員函數的指針的實現自身必須存儲一些信息,諸如它所指向的成員函數是虛擬的還是非虛擬的,到哪里支找到的適當的虛函數表指針等等。

6、另外補充一點關于指向內聯函數的指針的問題。一個函數指針指向內聯函數是合法的。然而,通過函數指針調用內聯函數將不會導致內聯式的函數調用,因為編譯器無法在編譯期精確地確定將會調用什么函數。因此在調用點,編譯器別無他法,只好生成間接、非內聯的函數調用代碼。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 西充县| 霍城县| 内乡县| 华宁县| 柘城县| 连江县| 新兴县| 揭东县| 济源市| 晋州市| 余庆县| 山东省| 康乐县| 安图县| 汾西县| 霍林郭勒市| 安图县| 垣曲县| 清苑县| 区。| 桑植县| 连平县| 宁安市| 龙山县| 射洪县| 当涂县| 涞源县| 休宁县| 湖州市| 临沧市| 筠连县| 中方县| 上杭县| 韶关市| 大厂| 光山县| 陆良县| 牙克石市| 东乡| 宁阳县| 锦屏县|