锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
2.const淇グ鎸囬拡
絎竴縐嶆儏鍐碉細const int *ptr=&a; ptr涓烘寚鍚戝父閲忕殑鎸囬拡錛屽叾鎵鎸囩殑鍊間笉鍙慨鏀癸紝浣嗘槸鍏舵墍鎸囧悜鐨勫湴鍧鍙互淇敼銆?/span>
絎簩縐嶆儏鍐碉細int * const ptr=&a錛?/span>ptr涓哄父閲忔寚閽堬紝鍏舵墍鎸囩殑鍦板潃涓嶅彲琚慨鏀癸紝浣嗘槸鍏舵墍鎸囩殑鍊煎彲浠ヨ淇敼銆?/span>
絎笁縐嶆儏鍐碉細const int * const ptr=&a錛?/span>ptr涓烘寚鍚戝父閲忕殑甯擱噺鎸囬拡錛屽叾鎵鎸囧悜鐨勫湴鍧涓嶅彲淇敼錛屽叾鎵鎸囧悜鐨勫間篃涓嶅彲淇敼銆?/span>
瀹炰緥錛?br>3.const 鐢ㄤ簬鍑芥暟鍙傛暟
鐩存帴鐪嬪疄渚嬶細
4.const 瀵逛簬綾?/span>
{1}瀵逛簬const 淇グ鐨勭被鎴愬憳鍙橀噺錛屽彧鑳藉湪鏋勯犲嚱鏁扮殑鍙傛暟鍒濆鍖栬〃閲屽鍏惰繘琛屽垵濮嬪寲錛屽惁鍒欎細寮曡搗緙栬瘧閿欒銆?/span>
錛?/span>2錛夊浜?/span>const 淇グ鐨勬垚鍛樺嚱鏁?/span> 錛屽 int Fun錛?/span>int a錛?/span>const錛岃繖鏍峰0鏄庝箣鍚庝換浣曚紒鍥懼湪鍑芥暟鍐呴儴淇敼鎴愬憳鍙橀噺鐨勫兼垨鑰呰皟鐢ㄩ潪const鎴愬憳鍑芥暟閮戒細寮曡搗緙栬瘧閿欒銆?/span>
錛?/span>3錛夊浜?/span>const澹版槑鐨勭敤鎴瘋嚜瀹氫箟綾葷殑瀵硅薄錛屽鏋滆皟鐢ㄨ繖涓被鐨勯潪const鎴愬憳鍑芥暟錛屽皢浼氬紩璧風紪璇戦敊璇紝緙栬瘧鍣ㄤ細淇濊瘉鍦?/span>const瀵硅薄鐨勭敓鍛芥湡鍐呬笉琚敼鍙樸?/span>
濡傛灉const瀵硅薄涓瀹氳璋冪敤姝ゅ嚱鏁扮殑璇濓紝閭e氨灝嗘鍑芥暟澹版槑涓?/span>const銆?br>瀹炰緥錛?br>
/*******************************************************************************
* SGI*STL鏄疭TL涔嬬埗Alexander Stepanov鍜孲TL宸ㄥ尃Matt Austern絳変漢鐨勪綔鍝? 鏄綋浠?nbsp; *
* 鏈瀵岀洓鍚嶃佹渶鍑鴻壊鐨凷TL瀹炵幇鐗堟湰錛屽叏閮ㄦ簮浠g爜鍜岃鏄庢枃妗e彲浠?a href="http://www.sgi.com/STL/涓?>www.sgi.com/STL/涓?/font> *
* 杞? 鏄垜浠涔燬TL鐨勬渶浣寵寖鏈? 浣嗘槸浼楁墍鍛ㄧ煡, STL浣跨敤浜嗗ぇ閲忓鏉傝壈娣辯殑C++鐗規(guī)? *
* 鍔犱笂STL鏈韓鐨勫鏉傚拰搴炲ぇ, 浣垮緱闃呰浠g爜鏈韓灝辨垚涓轟竴浠墮潪甯稿洶闅劇殑宸ヤ綔. 浠ヤ笅鏂?nbsp; *
* 瀛楁槸鎴戝湪瀛︿範STL榪囩▼涓緱鍒扮殑涓浜涚粡楠屽拰鐚滄祴, 甯屾湜鑳藉澶у鏈夋墍甯姪, 鏇村笇鏈涜兘 *
* 寰楀埌澶у鐨勬壒璇勫拰鎸囨, 浠ュ埄浜庢垜浠殑鍏卞悓鎻愰珮. *
* myan *
*******************************************************************************/
鍦⊿GI*STL婧愪唬鐮侀噷, typename榪欎釜鏂扮殑C++鍏抽敭瀛楀緱浣跨敤鍙互璇存槸闅忓鍙. 寰堝浠ュ墠瀛︿範榪?br>C++鐨勪漢鍙兘榪樹笉璁よ瘑typename, 鍏跺疄瀹冪殑甯歌鐢ㄦ硶寰堢畝鍗? 鍦ㄥ0鏄庢ā鏉垮嚱鏁版垨鑰呮ā鏉跨被鏃?
浼犵粺鐨勫啓娉?
template <class T>
generic_function() {
//........
}
浜﹀彲浠ュ啓鎴?br>template <typename T>
------------
generic_func() {
//...............
}
寮曞叆榪欎釜鍏抽敭瀛椾富瑕佹槸涓轟簡閬垮厤class鍙兘緇欎漢甯︽潵鐨勬販娣?
鏈潵typename鐨勭敤娉曞氨鏄繖涔堢畝鍗? 浣嗘槸STL婧愪唬鐮佷腑榪樻湁typename鐨勪竴縐嶄笉甯歌鐨勭敤娉? 濡傛灉
涓嶄簡瑙? 闃呰婧愪唬鐮佹椂灝變細閬囧埌鍥伴毦. 鍥犱負鐩墠鎴戞壘涓嶅埌鏈夊叧榪欎釜闂鐨勮鏄? 鎵浠ヨ嚜宸辮瘯楠屼簡
涓涓? 寰楀埌涓涓寽嫻? 鐜扮畝浠嬪涓? 璇鋒湁璇嗕箣澹枾姝?
棣栧厛鐪嬩竴孌礢GI*STL婧愪唬鐮? 鎽樿嚜stl_iterator.h
1: template <class _Container, class _Iterator>
2: inline insert_iterator<_Container> inserter(_Container& __x, _Iterator __i)
3: {
4: typedef typename _Container::iterator __iter;
5: return insert_iterator<_Container>(__x, __iter(__i));
6: }
浠や漢璐硅В鐨勯儴鍒嗗湪絎洓琛? 璇峰ぇ瀹跺湪鐪嬫垜鐨勮В閲婁箣鍓嶅厛鎯充竴鎯? 鎴戜笉鏁繚璇佷笅闈㈣В閲婄殑姝g‘鎬у拰
鍏ㄩ潰鎬?
瑙i噴:
鎴戣涓簍ypename鐨勮涔夋槸: 閫氱煡緙栬瘧鍣? 鍦╰ypename鍚庨潰琚0鏄庣殑涓滆タ鏄竴涓被鍨? 鑰屼笉鏄埆鐨?br>浠涔堜笢瑗?
浠ヤ笂渚嬪瓙鍦↙inux涓嬬敤G++ 2.91緙栬瘧閫氳繃, 緇撴灉鎵撳嵃"Right". 浣嗘槸濡傛灉鎶?1琛岀殑娉ㄩ噴鍙峰幓鎺? 娉ㄩ噴
*2琛? 鍒欑紪璇戞椂鎶ラ敊, 緙栬瘧鍣ㄤ笉鐭ラ亾COne::one_value_type涓轟綍鐗? 閫氬父鍦ㄦā鏉跨被鍙傛暟涓殑綾誨瀷鍒?br>瀹炰緥鍖栦箣鍚庢墠浼氭樉闇茬湡韜? 浣嗚繖涓狢Two綾誨亸鍋忓張瑕佷緷璧栦竴涓凡緇忓瓨鍦ㄧ殑COne妯℃澘綾? 甯屾湜鑳藉棰勫厛
淇濊瘉CTwo::two_value_type涓嶤One::one_value灞炰簬鍚屼竴綾誨瀷, 榪欐槸灝卞彧濂借typename鍑哄北, 鍛婅瘔
緙栬瘧鍣? 鍚庨潰鐨凜One::one_value_type鏄竴涓凡緇忓瓨鍦ㄤ簬鏌愬鐨勭被鍨嬬殑鍚嶅瓧(type name), 榪欐牱緙栬瘧
鍣ㄥ氨鍙互欏哄埄鐨勫伐浣滀簡.
鍘熸枃緗戝潃: http://blog.csdn.net/classfactory/archive/2004/08/29/87749.aspx
C++ 涓殑鏋氫婦綾誨瀷緇ф壙浜?C 璇█銆傚氨鍍忓叾浠栦粠 C 璇█緇ф壙榪囨潵鐨勫緢澶氱壒鎬т竴鏍鳳紝C++ 鏋氫婦涔熸湁緙虹偣錛岃繖鍏朵腑鏈鏄捐憲鐨勮帿榪囦簬浣滅敤鍩熼棶棰樷斺斿湪鏋氫婦綾誨瀷涓畾涔夌殑甯擱噺錛屽睘浜庡畾涔夋灇涓劇殑浣滅敤鍩燂紝鑰屼笉灞炰簬榪欎釜鏋氫婦綾誨瀷銆備緥濡備笅闈㈢殑紺轟緥錛?/p>
enum FileAccess {
Read = 0x1,
Write = 0x2,
};
FileAccess access = ::Read; // 姝g‘
FileAccess access = FileAccess::Read; // 閿欒
C++鏋氫婦鐨勮繖涓壒鐐瑰浜庝範鎯潰鍚戝璞″拰浣滅敤鍩熸蹇電殑浜烘潵璇存槸涓嶅彲鎺ュ彈鐨勩傞鍏堬紝FileAccess::Read 鏄劇劧鏇村姞絎﹀悎紼嬪簭鍛樼殑鐩磋錛屽洜涓轟笂闈㈢殑鏋氫婦瀹氫箟鐞嗗簲絳変環(huán)浜庡涓嬬殑瀹氫箟錛堝疄闄呬笂錛?NET 涓殑鏋氫婦綾誨瀷渚挎槸濡傛瀹炵幇鐨勶級錛?/p>
class FileAccess {
static const int Read = 0x1;
static const int Write = 0x2;
};
鍏舵錛岃繖瀵艱嚧鎴戜滑鏃犳硶鍦ㄥ悓涓涓綔鐢ㄥ煙涓畾涔変袱涓悓鏍峰悕縐扮殑鏋氫婦鍊箋備篃灝辨槸璇達紝浠ヤ笅鐨勪唬鐮佹槸緙栬瘧閿欒錛?/p>
enum FileAccess {
Read = 0x1,
Write = 0x2,
};
enum FileShare {
Read = 0x1, // 閲嶅畾涔?br> Write = 0x2, // 閲嶅畾涔?br>};
濡傛灉榪欎竴鐐規(guī)病鏈夎浣犳伡鎬掕繃鐨勮瘽錛屼綘鍙兘榪樻病鍐欒繃澶氬皯 C++ 浠g爜 :-)銆傚疄闄呬笂錛屽湪鏈鏂扮殑 C++0x 鏍囧噯鑽夋涓湁鍏充簬鏋氫婦浣滅敤鍩熼棶棰樼殑鎻愭錛屼絾鏈緇堢殑瑙e喅鏂規(guī)浼氭槸鎬庢牱鐨勫氨鏃犳硶鏈崪鍏堢煡浜嗭紝姣曠珶瀵逛簬璞?C++ 榪欐牱浣跨敤騫挎硾鐨勮璦鏉ヨ錛屼換浣曠壒鎬х殑澧炲垹鍜屼慨鏀歸兘蹇呴』鍗佸垎灝忓績璋ㄦ厧銆?/p>
褰撶劧錛屾垜浠彲浠ヤ嬌鐢ㄤ竴浜涜總鍥炵殑鏂規(guī)硶鏉ヨВ鍐寵繖涓棶棰橈紙C++ 鎬繪槸鑳界粰鎴戜滑寰堝鎯婂枩鍜屾剰澶栵級銆備緥濡傦紝鎴戜滑鍙互鎶婃灇涓懼兼斁鍦ㄤ竴涓粨鏋勯噷錛屽茍浣跨敤榪愮畻絎﹂噸杞芥潵閫艱繎鏋氫婦鐨勭壒鎬э細
struct FileAccess {
enum __Enum {
Read = 0x1,
Write = 0x2
};
__Enum _value; // 鏋氫婦鍊?/p>
FileAccess(int value = 0) : _value((__Enum)value) {}
FileAccess& operator=(int value) {
this->_value = (__Enum)value;
return *this;
}
operator int() const {
return this->_value;
}
};
鎴戜滑鐜板湪鍙互鎸夌収甯屾湜鐨勬柟寮忎嬌鐢ㄨ繖涓灇涓劇被鍨嬶細
FileAccess access = FileAccess::Read;
騫朵笖錛屽洜涓烘垜浠彁渚涗簡鍒?int 綾誨瀷鐨勮漿鎹㈣繍綆楃錛屽洜姝ゅ湪闇瑕?int 鐨勫湴鏂歸兘鍙互浣跨敤瀹冿紝渚嬪 switch 璇彞錛?/p>
switch (access) {
case FileAccess::Read:
break;
case FileAccess::Write:
break;
}
褰撶劧鎴戜滑涓嶆効鎰忔瘡嬈¢兘鎵嬪伐緙栧啓榪欐牱鐨勭粨鏋勩傞氳繃浣跨敤瀹忥紝鎴戜滑鍙互寰堝鏄撳仛鍒拌繖涓鐐癸細
#define DECLARE_ENUM(E) \
struct E \
{ \
public: \
E(int value = 0) : _value((__Enum)value) { \
} \
E& operator=(int value) { \
this->_value = (__Enum)value; \
return *this; \
} \
operator int() const { \
return this->_value; \
} \
\
enum __Enum {
#define END_ENUM() \
}; \
\
private: \
__Enum _value; \
};
鎴戜滑鐜板湪鍙互鎸夊涓嬬殑鏂瑰紡瀹氫箟鍓嶉潰鐨勬灇涓撅紝騫朵笖涓嶆瘮鐩存帴鍐?enum 澶嶆潅澶氬皯銆?/p>
DECLARE_ENUM(FileAccess)
Read = 0x1,
Write = 0x2,
END_ENUM()
DECLARE_ENUM(FileShare)
Read = 0x1,
Write = 0x2,
END_ENUM()
--------------鎸囬拡----------------
int a=10;
int *p=&a;
-------------鎸囬拡鐨勬寚閽?----------
int b=20;
int *p=&b;
int **p2p=&p;
-------------綆鍗曟暟緇?----------------
int c[10];//鏁存暟鏁扮粍錛屽惈鏈?0涓暣鏁板厓绱?br>涔熷氨鏄姣忎竴涓厓绱犻兘鏄暣鏁?br>
--------------鎸囬拡鏁扮粍--------------------
int *p[10];//鎸囬拡鏁扮粍錛屽惈鏈?0涓寚閽堝厓绱?br>涔熷氨鏄姣忎竴涓厓绱犻兘鏄寚閽?br>
--------------鏁扮粍鎸囬拡--------------------
int (*p)[10];//鏁扮粍鎸囬拡錛岃繖涓寚閽堣兘澶熺敤鏉ユ寚鍚?br>鍚湁10涓厓绱犵殑鏁存暟鏁扮粍
------------鍑芥暟鎸囬拡---------------------
int (*p)( ); // 鎸囧悜鍑芥暟鐨勬寚閽?..榪欓噷澹版槑浜嗕竴涓寚閽坧錛岃鎸囬拡鎸囧悜榪斿洖鍊兼槸鏁村瀷錛堝嵆鍑芥暟綾誨瀷涓烘暣鍨嬶級鐨勫嚱鏁幫紒
----------------鎸囬拡鍑芥暟---------------------------
int *p(int a,float b); //榪斿洖鍊間負鎸囬拡鐨勫嚱鏁?..璇ュ嚱鏁拌繑鍥炴寚鍚戞暣鍨嬪彉閲忕殑鎸囬拡錛?/font>
鍗寵鍑芥暟鐨勭被鍨嬩負int *, p鍜屼笂渚嬩笉鍚岋紝浠栨槸鍑芥暟鍚嶏紒涓婁緥涓槸鎸囬拡錛?/font>
===========================================================================
C/C 涓嚱鏁版寚閽堢殑鍚箟
浣滆咃細綆″畞
銆銆鍑芥暟瀛樻斁鍦ㄥ唴瀛樼殑浠g爜鍖哄煙鍐咃紝浠栦滑鍚屾牱鏈夊湴鍧錛屾垜浠浣曡兘鑾峰緱鍑芥暟鐨勫湴鍧鍛紵
銆銆鍋囧鎴戜滑鏈変竴涓猧nt test(int a)鐨勫嚱鏁幫紝閭d箞錛屼粬鐨勫湴鍧灝辨槸鍑芥暟鐨勫悕瀛楋紝榪欎竴鐐瑰鍚屾暟緇勭浉鍚岋紝鏁扮粍鐨勫悕瀛楀氨鏄暟緇勭殑璧峰鍦板潃銆?
銆銆瀹氫箟涓涓寚鍚戝嚱鏁扮殑鎸囬拡鐢ㄥ涓嬬殑褰㈠紡錛屼互涓婇潰鐨則est()涓轟緥錛?
int (*fp)(int a);//榪欓噷灝卞畾涔変簡涓涓寚鍚戝嚱鏁扮殑鎸囬拡
銆銆鍑芥暟鎸囬拡涓嶈兘緇濆涓嶈兘鎸囧悜涓嶅悓綾誨瀷錛屾垨鏄甫涓嶅悓褰㈠弬鐨勫嚱鏁幫紝鍦ㄥ畾涔夊嚱鏁版寚閽堢殑鏃跺欐垜浠緢瀹規(guī)槗鐘涓嬬殑閿欒銆?/font>
int *fp(int a);//榪欓噷鏄敊璇殑錛屽洜涓烘寜鐓х粨鍚堟у拰浼樺厛綰ф潵鐪嬪氨鏄厛鍜?)緇撳悎錛岀劧鍚庡彉鎴愪簡涓涓繑鍥炴暣褰㈡寚閽堢殑鍑芥暟浜嗭紝鑰屼笉鏄嚱鏁版寚閽堬紝榪欎竴鐐瑰挨鍏墮渶瑕佹敞鎰忥紒
銆銆涓嬮潰鎴戜滑鏉ョ湅涓涓叿浣撶殑渚嬪瓙錛?/font>
#include <iostream>
#include <string>
using namespace std;
int test(int a);
void main(int argc,char* argv[])
{
cout<<test<<endl;//鏄劇ず鍑芥暟鍦板潃
int (*fp)(int a);
fp=test;//灝嗗嚱鏁皌est鐨勫湴鍧璧嬬粰鍑芥暟瀛︽寚閽坒p
cout<<fp(5)<<"|"<<(*fp)(10)<<endl;
//涓婇潰鐨勮緭鍑篺p(5),榪欐槸鏍囧噯c 鐨勫啓娉?(*fp)(10)榪欐槸鍏煎c璇█鐨勬爣鍑嗗啓娉?涓ょ鍚屾剰,浣嗘敞鎰忓尯鍒?閬垮厤鍐欑殑紼嬪紡浜х敓縐繪鎬ч棶棰?
cin.get();
}
int test(int a)
{
return a;
}
銆銆typedef瀹氫箟鑳藉綆鍖栧嚱鏁版寚閽堢殑瀹氫箟錛屽湪瀹氫箟涓涓殑鏃跺欐劅瑙変笉鍑烘潵錛屼絾瀹氫箟澶氫簡灝辯煡閬撴柟渚夸簡錛屼笂闈㈢殑浠g爜鏀瑰啓鎴愬涓嬬殑褰㈠紡錛?/font>
#include <iostream>
#include <string>
using namespace std;
int test(int a);
void main(int argc,char* argv[])
{
cout<<test<<endl;
typedef int (*fp)(int a);//娉ㄦ剰,榪欓噷涓嶆槸鐢熷懡鍑芥暟鎸囬拡,鑰屾槸瀹氫箟涓涓嚱鏁版寚閽堢殑綾誨瀷,榪欎釜綾誨瀷鏄嚜宸卞畾涔夌殑,綾誨瀷鍚嶄負fp
fp fpi;//榪欓噷鍒╃敤鑷繁瀹氫箟鐨勭被鍨嬪悕fp瀹氫箟浜嗕竴涓猣pi鐨勫嚱鏁版寚閽?
fpi=test;
cout<<fpi(5)<<"|"<<(*fpi)(10)<<endl;
cin.get();
}
int test(int a)
{
return a;
}
銆銆鍑芥暟鎸囬拡鍚屾牱鏄兘澶熶綔涓哄弬鏁頒紶閫掔粰鍑芥暟鐨勶紝涓嬮潰鎴戜滑鐪嬩釜渚嬪瓙錛屼粩緇嗛槄璇繪偍灝嗕細鍙戠幇浠栫殑鐢ㄥ錛岀◢鍔犳帹鐞嗚兘澶熷緢鏂逛究鎴戜滑榪涜涓浜涘鏉傜殑緙栫▼宸ヤ綔銆?/font>
//-------------------璇ヤ緥浠ヤ笂涓涓緥瀛愪綔涓哄熀紜紼嶅姞浜嗕慨鏀?----------------------------
#include <iostream>
#include <string>
using namespace std;
int test(int);
int test2(int (*ra)(int),int);
void main(int argc,char* argv[])
{
cout<<test<<endl;
typedef int (*fp)(int);
fp fpi;
fpi=test;//fpi璧嬩簣test 鍑芥暟鐨勫唴瀛樺湴鍧
cout<<test2(fpi,1)<<endl;//榪欓噷璋冪敤test2鍑芥暟鐨勬椂鍊?榪欓噷鎶奻pi鎵瀛樺偍鐨勫嚱鏁板湴鍧(test鐨勫嚱鏁板湴鍧)浼犻掍簡緇檛est2鐨勭涓涓艦鍙?
cin.get();
}
int test(int a)
{
return a-1;
}
int test2(int (*ra)(int),int b)//榪欓噷瀹氫箟浜嗕竴涓悕瀛椾負ra鐨勫嚱鏁版寚閽?
{
int c=ra(10) b;//鍦ㄨ皟鐢ㄤ箣鍚?ra宸叉寚鍚慺pi鎵鎸囧悜鐨勫嚱鏁板湴鍧鍗硉est鍑芥暟
return c;
}
銆銆鍒╃敤鍑芥暟鎸囬拡錛屾垜浠兘澶熸瀯鎴愭寚閽堟暟緇勶紝鏇存槑紜偣鐨勮娉曟槸鏋勬垚鎸囧悜鍑芥暟鐨勬寚閽堟暟緇勶紝榪欎箞璇村彲鑳藉氨瀹規(guī)槗鐞嗚В鐨勫浜嗐?/font>
#include <iostream>
#include <string>
using namespace std;
void t1(){cout<<"test1";}
void t2(){cout<<"test2";}
void t3(){cout<<"test3";}
void main(int argc,char* argv[])
{
void* a[]={t1,t2,t3};
cout<<"姣旇緝t1()鐨勫唴瀛樺湴鍧鍜屾暟緇刟[0]鎵瀛樺偍鐨勫湴鍧鏄惁涓鑷?<<t1<<"|"<<a[0]<<endl;
cout<<a[0]();//閿欒!鎸囬拡鏁扮粍鏄笉鑳藉埄鐢ㄦ暟緇勪笅鏍囨搷浣滆皟鐢ㄥ嚱鏁扮殑
typedef void (*fp)();//鑷畾涔変竴涓嚱鏁版寚閽堢被鍨?
fp b[]={t1,t2,t3}; //鍒╃敤鑷畾涔夌被鍨媐p鎶奲[]瀹氫箟瓚佷竴涓寚鍚戝嚱鏁扮殑鎸囬拡鏁扮粍
b[0]();//鐜板湪鍒╃敤鎸囧悜鍑芥暟鐨勬寚閽堟暟緇勮繘琛屼笅鏍囨搷浣滃氨鑳藉榪涜鍑芥暟鐨勯棿鎺ヨ皟鐢ㄤ簡;
cin.get();
}
銆銆浠旂粏鐪嬩笂闈㈢殑渚嬪瓙鍙兘涓嶇敤鎴戝璇村ぇ瀹朵篃浼氱煡閬撴槸鎬庝箞涓浼氫簨鎯呬簡,鏈鍚庢垜浠仛涓涓噸鐐瑰皬緇?鍙璁頒綇榪欎竴鐐?瀵逛簬鐞嗚В鍒╃敤鍑芥暟鎸囬拡鏋勬垚鏁扮粍榪涜鍑芥暟闂存帴璋冪敤灝卞緢瀹規(guī)槗浜?
void* a[]={t1,t2,t3};
cout<<"姣旇緝t1()鐨勫唴瀛樺湴鍧鍜屾暟緇刟[0]鎵瀛樺偍鐨勫湴鍧鏄惁涓鑷?<<t1<<"|"<<a[0]<<endl;
cout<<a[0]();//閿欒!鎸囬拡鏁扮粍鏄笉鑳藉埄鐢ㄦ暟緇勪笅鏍囨搷浣滆皟鐢ㄥ嚱鏁扮殑
銆銆涓婇潰鐨勮繖涓灝忔涓殑閿欒琛岋紝涓轟粈涔堜笉鑳借繖涔堣皟鐢ㄥ憿錛?
銆銆鍓嶄竴綃囨暀紼嬫垜浠凡璇寸殑寰堟竻妤氫簡錛屼絾鏄湪榪欓噷鎴戜滑榪樻槸澶嶄範涓涓嬫蹇碉紝鎸囬拡鏁扮粍鍏冪礌鎵淇濆瓨鐨勫彧鏄釜鍐呭瓨鍦板潃錛屾棦鐒跺彧鏄釜鍐呭瓨鍦板潃灝變笉鍙兘榪涜a[0]()榪欐牱鍦板潃甯︽嫭鍙風殑鎿嶄綔錛岃屽嚱鏁版寚閽堜笉鍚屼粬鏄釜渚嬪錛屽嚱鏁版寚閽堝彧鎵浠ヨ繖涔堝彨浠栧氨鏄洜涓轟粬鏄寚鍚戝嚱鏁版寚鍚戝唴瀛樼殑浠g爜鍖虹殑鎸囬拡錛屼粬琚郴緇熸巿浜堝厑璁稿拰()鎷彿鎿嶄綔鐨勬潈鍒╋紝榪涜闂存帴鐨勫嚱鏁拌皟鐢紝鏃㈢劧鍑芥暟鎸囬拡鍏佽榪欎箞鎿嶄綔錛岄偅涔堣瀹氫箟鎴愬嚱鏁版寚閽堢殑鏁扮粍灝變竴瀹氭槸鑳藉鐩稿悓鐨勬搷浣滅殑銆?/font>