?? 1616502601.txt
字號:
化境編程界-
成員變量、函數(shù)指針的用法
化境編程界首頁| 化境軟件庫 | 化境教程庫 | 其它資源 | 化境討論區(qū)
| 化境留言板
showTop();
歡迎訪問《化境編程界》| * Email:5xsoft@21cn.com | < 留言板
化境編程界 -> 技術(shù)文章 -> C/C++/VC
成員變量、函數(shù)指針的用法
[ 作者: 不詳
添加時間: 2001-5-16 16:53:05
]
說明:
這是今天看《thinking in c++》的第10章時作的"筆記",前面也有人
問到關(guān)于成員函數(shù)指針的問題,我那時說直接傳入this指針,現(xiàn)在看
了書后有多了一種方法,不過,它的語法有點難計。
這下回去可以看看MFC的消息映射/動態(tài)創(chuàng)建是怎么寫的了,我想也應(yīng)
該是成員函數(shù)指針把
指針是指向一些內(nèi)存地址的變量,既可以是數(shù)據(jù)的地址也可以是函數(shù)的地址。C++的
成員指針遵從同樣的原則。困難的是所有的指針需要一個地址,但在類內(nèi)部沒有地
址;選擇一個類的成員意味著在類中偏移。只有把這個偏移和具體對象的開始地址
結(jié)合,才能得到實際地址。成員指針的語法要求選擇一個對象的同時逆向引用成員
指針。
struct simple { int a ; }
simple so;
simple* sp = &so;
如果有一個這個結(jié)構(gòu)的指針sp和對象so,如果有一個指針指向一個類對象成員,甚至
假設(shè)它代表對象內(nèi)一定的偏移,將會發(fā)生什么?為了取得指針指向的內(nèi)容,必須用*號逆向引用。但是,它只是一個對象內(nèi)的偏移,所以還必須要指定那個對象。因此,*號要和逆向引用的對象結(jié)合。
sp->*pm = 47; so.*pm = 47;
定義pm的語法是什么?其實它像任何一個指針,必須說出它指向什么類型。并且,在定義中也要使用一個‘*’號。唯一的區(qū)別只是必須說出這個成員指針使用什么類的對象。當然,這是用類名和全局操作符實現(xiàn)的:
定義成員指針:
int simple::*pm;
定義并初始化成員指針:
int simple::*pm = &simple::a;
因為引用到一個類而非那個類的對象,因而,&simple::a僅可作為成員指針的語法表示。
指向函數(shù)的指針定義像下面的形式:int(*fp)(float); (*fp)的圓括號用來迫使編譯器
正確判斷定義。沒有圓括號,這個表達式就是一個返回int*值的函數(shù)。為了定義和使用一個成員函數(shù)的指針,圓括號扮演同樣重要的角色。假設(shè)在一個結(jié)構(gòu)內(nèi)有一個函數(shù):
struct simple2 { int f(float); };
通過給普通函數(shù)插入類名和全局操作符就可以定義一個指向成員函數(shù)的指針:
int(simple2::*fp)(float);
初始化:
int(simple2::*fp)(float) = &simple2::f;
&號是可選的;可以用不帶參數(shù)表的函數(shù)標識符來表示地址:fp = simple2::f;
使用:
simple2 s2;
int i = (s2.*fp)(1.5);
另一個使用例子
class CB
{
int f1(){ return 1; }
int f2(){ return 2; }
int (CB::*fptr[2])();
public:
CB() { fptr[0] = CB::f1; fptr[1] = &CB::f2; }
int sel(int i){ return (this->*fptr[i])(); }
};
在構(gòu)造函數(shù)中,成員指針的初始化似乎被過分地指定了。是否可以這樣寫:
fptr[1] = f2; 因為名字f2在成員函數(shù)中出現(xiàn),是否可以自動地認為在這個類范圍內(nèi)呢?問題是這不符合成員函數(shù)的語法,語法要求編譯器能夠判斷將要進行什么。當成員函數(shù)被逆向引用時,它仍被過分地指定了,this似乎多余。正如前面所講的,當它被逆向引用時,語法也需要成員指針總是和一個對象綁定在一起。
相關(guān)內(nèi)容:
- 概觀C++程序設(shè)計語言
- Windows Socket API 使用經(jīng)驗
- 幾種VC++數(shù)據(jù)庫開發(fā)技術(shù)的比較
- C++學(xué)習(xí)要點
- C++實戰(zhàn)之數(shù)據(jù)抽象
showBottom();
申明: 本站
所有內(nèi)容均是從網(wǎng)上收集,若有侵范你版權(quán)的請指出,本站馬上刪除。
© Copyright By 稻香老農(nóng) 2000.3 - Now | 站務(wù)聯(lián)系: 5xsoft@21cn.com | OICQ:593737 (只用于站務(wù)聯(lián)系,不做它用)
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费在线视频观看|
91精品黄色片免费大全|
国产一区二区三区国产|
午夜欧美大尺度福利影院在线看|
亚洲欧美一区二区三区极速播放|
欧美韩日一区二区三区四区|
精品国产免费人成电影在线观看四季
|
亚洲第一成年网|
樱花草国产18久久久久|
亚洲一区二区三区在线播放|
一区二区高清免费观看影视大全|
亚洲一区二区三区精品在线|
亚洲国产sm捆绑调教视频|
午夜精品视频在线观看|
日韩激情av在线|
国内精品国产三级国产a久久|
国产毛片精品国产一区二区三区|
成人妖精视频yjsp地址|
91在线视频18|
日韩一区二区影院|
国产午夜精品一区二区三区嫩草|
国产精品私人影院|
亚洲不卡av一区二区三区|
亚洲v日本v欧美v久久精品|
免费人成黄页网站在线一区二区
|
国产美女av一区二区三区|
成人午夜视频网站|
欧美三级在线视频|
精品国产乱码久久久久久牛牛
|
69久久夜色精品国产69蝌蚪网|
制服丝袜中文字幕一区|
久久久精品一品道一区|
亚洲天堂免费看|
日本91福利区|
95精品视频在线|
欧美久久一区二区|
中文字幕不卡的av|
日韩精彩视频在线观看|
成人美女视频在线观看|
欧美一卡2卡3卡4卡|
国产精品私房写真福利视频|
日韩在线一二三区|
成人福利电影精品一区二区在线观看|
在线免费观看一区|
中文一区二区完整视频在线观看|
亚洲国产精品天堂|
国产99久久精品|
日韩三级中文字幕|
亚洲精品久久久蜜桃|
国产久卡久卡久卡久卡视频精品|
欧洲精品一区二区三区在线观看|
精品国产一区二区三区久久影院
|
7777精品久久久大香线蕉|
国产精品视频免费|
精品一区二区三区日韩|
欧美日韩精品免费观看视频|
国产精品乱人伦中文|
另类调教123区
|
2020国产成人综合网|
午夜视频在线观看一区二区三区|
99re热视频精品|
日本一区二区视频在线|
激情欧美一区二区|
日韩一区二区中文字幕|
亚洲v精品v日韩v欧美v专区|
91色视频在线|
中文字幕乱码一区二区免费|
国产精品99精品久久免费|
日韩欧美成人一区|
美女视频一区在线观看|
69堂精品视频|
日韩二区三区在线观看|
欧美绝品在线观看成人午夜影视|
亚洲最大的成人av|
色综合天天在线|
一个色在线综合|
欧美午夜精品久久久久久超碰|
亚洲色图制服丝袜|
欧美性猛片aaaaaaa做受|
亚洲国产va精品久久久不卡综合|
精品视频免费看|
亚洲成人免费影院|
欧美精品色一区二区三区|
天天综合色天天|
6080日韩午夜伦伦午夜伦|
日韩av网站在线观看|
www亚洲一区|
国产精品一区二区在线观看不卡|
国产人伦精品一区二区|
av在线不卡电影|
亚洲国产成人av网|
日韩小视频在线观看专区|
久久精品免费看|
国产精品美女视频|
欧美亚洲日本国产|
久久99日本精品|
国产精品免费网站在线观看|
在线视频你懂得一区|
日韩高清一级片|
日本一区免费视频|
欧美日精品一区视频|
久久er99精品|
一区二区三区四区五区视频在线观看|
欧美一级日韩不卡播放免费|
国产一区美女在线|
亚洲品质自拍视频网站|
日韩一区二区三区免费看|
国产一二精品视频|
亚洲影视在线播放|
久久久久久久综合日本|
欧美中文字幕一区二区三区|
久久av中文字幕片|
亚洲狠狠丁香婷婷综合久久久|
欧美一区二区免费|
91在线porny国产在线看|
日本视频中文字幕一区二区三区|
国产精品网站在线播放|
在线电影一区二区三区|
成人免费看黄yyy456|
奇米综合一区二区三区精品视频|
国产精品欧美精品|
精品理论电影在线观看
|
日韩一级免费观看|
99re这里只有精品视频首页|
美女任你摸久久|
樱花影视一区二区|
国产精品国产精品国产专区不片|
欧美精品丝袜中出|
色综合网色综合|
成人免费黄色在线|
久久99精品国产麻豆婷婷|
亚洲一区二区三区四区在线观看|
久久久99久久|
欧美电视剧在线看免费|
欧美精品aⅴ在线视频|
97久久超碰国产精品电影|
国产乱子轮精品视频|
五月天久久比比资源色|
亚洲裸体xxx|
欧美国产日韩一二三区|
久久久久国产精品人|
精品国产一区二区三区久久久蜜月
|
亚洲精品精品亚洲|
国产精品欧美一级免费|
久久精品欧美日韩|
精品国产电影一区二区|
日韩欧美在线网站|
91麻豆精品91久久久久久清纯|
色婷婷激情久久|
日本高清成人免费播放|
99国产一区二区三精品乱码|
国产91精品露脸国语对白|
国产福利精品一区|
国产成人精品影视|
国产河南妇女毛片精品久久久|
精品制服美女丁香|
国产又黄又大久久|
国产精品亚洲午夜一区二区三区|
九九在线精品视频|
国产自产视频一区二区三区|
国产尤物一区二区|
国产精品一品视频|
不卡的电影网站|
91久久精品一区二区二区|
欧美午夜电影网|
欧美另类一区二区三区|
日韩欧美区一区二|
国产三级精品三级|
综合精品久久久|
亚洲国产毛片aaaaa无费看|
免费在线观看成人|
免费高清视频精品|
国产一区二区0|
97精品久久久久中文字幕|
欧美日韩一区高清|
精品欧美久久久|
亚洲人成人一区二区在线观看|
亚洲一区二区偷拍精品|
久久66热偷产精品|
91视频国产资源|
91精品一区二区三区久久久久久|
久久综合久久99|
亚洲蜜桃精久久久久久久|
天堂在线一区二区|
成人免费看片app下载|
欧美日韩一级大片网址|
久久亚洲春色中文字幕久久久|
中文字幕一区免费在线观看|
午夜免费欧美电影|
国产成人精品免费|
欧美情侣在线播放|
国产精品久久久久久久浪潮网站|
亚洲国产综合色|
国产精品亚洲成人|
欧美日韩在线三区|
国产精品免费视频网站|
日本不卡免费在线视频|
91麻豆精东视频|
国产日韩v精品一区二区|
日本在线不卡视频|