锘??xml version="1.0" encoding="utf-8" standalone="yes"?>狠狠色丁香婷婷综合久久来,欧美久久综合九色综合,亚洲精品tv久久久久久久久http://m.shnenglu.com/guojingjia2006/category/11666.htmlPay it forword - 鎴戝茍涓嶈鐨勮嚜璞紝鎴戞墍灝濊瘯鐨勪簨鎯呴兘澶辮觸浜喡仿仿仿仿仿蜂範鎯師鏈敓媧葷殑浜轟笉瀹規槗鏀瑰彉錛屽氨綆楃幇鐘跺緢緋燂紝浠栦滑涔熷緢闅炬敼鍙橈紝鍦ㄨ繃紼嬩腑錛屼粬浠繕鏄斁寮冧簡路路路路路路浠栦滑涓鏀懼純錛屽ぇ瀹跺氨閮芥槸杈撳路路路路路路璁╃埍浼犲嚭鍘伙紝寰堝洶闅撅紝涔熸棤娉曢鏂欙紝浜轟滑闇瑕佹洿緇嗗績鐨勮瀵熷埆浜猴紝瑕侀殢鏃舵敞鎰忔墠鑳戒繚鎶ゅ埆浜猴紝鍥犱負浠栦滑鏈繀鐭ラ亾鑷繁瑕佷粈涔埪仿仿仿仿?/description>zh-cnTue, 21 Jan 2014 03:04:15 GMTTue, 21 Jan 2014 03:04:15 GMT60CentOS 6涓嬪畨瑁卬odejs 0.9.0http://m.shnenglu.com/guojingjia2006/archive/2014/01/20/205486.html灝忔灉瀛?/dc:creator>灝忔灉瀛?/author>Mon, 20 Jan 2014 02:11:00 GMThttp://m.shnenglu.com/guojingjia2006/archive/2014/01/20/205486.htmlhttp://m.shnenglu.com/guojingjia2006/comments/205486.htmlhttp://m.shnenglu.com/guojingjia2006/archive/2014/01/20/205486.html#Feedback0http://m.shnenglu.com/guojingjia2006/comments/commentRss/205486.htmlhttp://m.shnenglu.com/guojingjia2006/services/trackbacks/205486.html

紜繚瀹夎浜唒ython錛屽ぇ閮ㄥ垎瀹夎澶辮觸閮芥槸鐢變簬python鐗堟湰榪囦綆瀵艱嚧銆傚畨瑁呬箣鍓嶏紝鍗囩駭python鐗堟湰錛屽崌綰ф楠?http://www.tomtalk.net/wiki/Python銆?/p>

[root@SNDA-192-168-15-161 ~]# python -V
Python 2.7.3
寮濮嬪畨瑁咃細

1).涓嬭澆nodejs鍒版湰鍦板茍瑙e帇緙?
[root@SNDA-192-168-15-161 node]# wget http://nodejs.org/dist/v0.9.0/node-v0.9.0.tar.gz
[root@SNDA-192-168-15-161 node]# tar zxvf node-v0.9.0.tar.gz
2).榪涘叆鍒拌鐩綍緙栬瘧鍜屽畨瑁?
[root@SNDA-192-168-15-161 node-v0.9.0]# cd node-v0.9.0
[root@SNDA-192-168-15-161  node-v0.9.0]# ./configure --prefix=/usr/local/node/0.9.0
榪欓噷瀹夎鍦ㄤ簡/usr/local/node/0.9.0鐩綍涓?
[root@SNDA-192-168-15-161 node-v0.9.0]# make
[root@SNDA-192-168-15-161 node-v0.9.0]# make install
3).閰嶇疆NODE_HOME
[root@SNDA-192-168-15-161 node-v0.9.0]# vi /etc/profile
鍦╡xport PATH USER 銆傘傘備竴琛岀殑涓婇潰娣誨姞濡備笅鍐呭錛屽茍灝哊ODE_HOME/bin璁劇疆鍒扮郴緇焢ath涓?
#set for nodejs
export NODE_HOME=/usr/local/node/0.9.0
export PATH=$NODE_HOME/bin:$PATH
淇濆瓨閫鍑哄悗鎵ц濡備笅鍛戒護錛屼嬌鍒氭墠鐨勯厤緗敓鏁?
[root@SNDA-192-168-15-161 node-v0.9.0]# source /etc/profile

鎵цnode -h鍛戒護楠岃瘉璁劇疆鎴愬姛

[root@SNDA-192-168-15-161 ~]# node -h
Usage: node [options] [ -e script | script.js ] [arguments]
       node debug script.js [arguments]

Options:
  -v, --version        print node's version
  -e, --eval script    evaluate script
  -p, --print          print result of --eval
  -i, --interactive    always enter the REPL even if stdin
                       does not appear to be a terminal
  --no-deprecation     silence deprecation warnings
  --trace-deprecation  show stack traces on deprecations
  --v8-options         print v8 command line options
  --max-stack-size=val set max v8 stack size (bytes)

Environment variables:
NODE_PATH              ':'-separated list of directories
                       prefixed to the module search path.
NODE_MODULE_CONTEXTS   Set to 1 to load modules in their own
                       global contexts.
NODE_DISABLE_COLORS    Set to 1 to disable colors in the REPL

Documentation can be found at http://nodejs.org/
鑷蟲瀹夎璁劇疆瀹屾瘯銆?/p>

榪愯涓涓畝鍗曠殑node搴旂敤紼嬪簭 + socket.io錛岄鍏堥渶瑕佸畨瑁卻ocket.io妯″潡

[root@SNDA-192-168-15-161 ~]# npm install socket.io

[root@SNDA-192-168-15-161 ~]# vi app.js

var http=require('http');
var io =require('socket.io');
var server = http.createServer(function(req,res){

    res.writeHead(200,{'Content-Type':'text/plain'});
    res.end('Hello world');
});

server.listen(process.argv[2]);

var socket = io.listen(server);
socket.on('connection',function(client){
    console.log('client has connected');
    client.on('message',function(){ });
});
 

[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8001 &

[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8002 &

[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8003 &

[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8004 &

鏇磋緇嗙殑鍙傜収socket.io鐨勫畼緗?/a>鐨勪緥瀛愩?

websocket涓巒ode.js鐨勫畬緹庣粨鍚?/a>

http://wanshuiqianshan.iteye.com/blog/1618498



]]>
鍗曞疄渚嬫ā鏉跨被(涓嬈¢潰璇曠粡鍘?http://m.shnenglu.com/guojingjia2006/archive/2010/09/10/126292.html灝忔灉瀛?/dc:creator>灝忔灉瀛?/author>Fri, 10 Sep 2010 02:30:00 GMThttp://m.shnenglu.com/guojingjia2006/archive/2010/09/10/126292.htmlhttp://m.shnenglu.com/guojingjia2006/comments/126292.htmlhttp://m.shnenglu.com/guojingjia2006/archive/2010/09/10/126292.html#Feedback0http://m.shnenglu.com/guojingjia2006/comments/commentRss/126292.htmlhttp://m.shnenglu.com/guojingjia2006/services/trackbacks/126292.htmltemplate<class T>
class Singleton{
public:
    
static T* getInstance(){
        
if(ptr==NULL){
            ptr
=new T();//(T*)(::operator new(sizeof(T)));
        }
        
return ptr;
    }
private:
    Singleton(){};
    
static T* ptr;
};
template
<typename T>
T
* Singleton<T>::ptr=0;

class C{
public:
    int x;
    C(){
        x=0;
    }
    ~C(){
        cout<<"C delete"<<endl;
    }
};

int main(){
    C
* c=Singleton<C>::getInstance();
    C
* d=Singleton<C>::getInstance();

    cout
<<c<<" "<<d<<endl;
}

褰撴椂涓鏃舵病鍙嶅簲榪囨潵錛岀敤鐨勮緝澶氱殑榪樻槸瀹炰緥鍖栫殑鍗曚綋綾?榪欓噷絎旇涓涓嬨備笉榪囨ā鏉跨被鏈夊叾鑷繁鏂逛究鐨勫湴鏂廣傛墍浠ヨ繕鏄湁蹇呰鐨?


]]>
c++ 铏氬嚱鏁拌〃(杞級http://m.shnenglu.com/guojingjia2006/archive/2010/05/13/115300.html灝忔灉瀛?/dc:creator>灝忔灉瀛?/author>Thu, 13 May 2010 10:37:00 GMThttp://m.shnenglu.com/guojingjia2006/archive/2010/05/13/115300.htmlhttp://m.shnenglu.com/guojingjia2006/comments/115300.htmlhttp://m.shnenglu.com/guojingjia2006/archive/2010/05/13/115300.html#Feedback0http://m.shnenglu.com/guojingjia2006/comments/commentRss/115300.htmlhttp://m.shnenglu.com/guojingjia2006/services/trackbacks/115300.html

C++涓殑铏氬嚱鏁扮殑浣滅敤涓昏鏄疄鐜頒簡澶氭佺殑鏈哄埗銆傚叧浜庡鎬侊紝綆鑰岃█涔嬪氨鏄敤鐖剁被鍨嬪埆鐨勬寚閽堟寚鍚戝叾瀛愮被鐨勫疄渚嬶紝鐒跺悗閫氳繃鐖剁被鐨勬寚閽堣皟鐢ㄥ疄闄呭瓙綾葷殑 鎴愬憳鍑芥暟銆傝繖縐嶆妧鏈彲浠ヨ鐖剁被鐨勬寚閽堟湁“澶氱褰㈡?#8221;錛岃繖鏄竴縐嶆硾鍨嬫妧鏈傛墍璋撴硾鍨嬫妧鏈紝璇寸櫧浜嗗氨鏄瘯鍥句嬌鐢ㄤ笉鍙樼殑浠g爜鏉ュ疄鐜板彲鍙樼殑綆楁硶銆傛瘮濡傦細妯℃澘鎶 鏈紝RTTI鎶鏈紝铏氬嚱鏁版妧鏈紝瑕佷箞鏄瘯鍥懼仛鍒板湪緙栬瘧鏃跺喅璁紝瑕佷箞璇曞浘鍋氬埌榪愯鏃跺喅璁?

鍏充簬铏氬嚱鏁扮殑浣跨敤鏂規硶錛屾垜鍦ㄨ繖閲屼笉鍋氳繃澶氱殑闃愯堪銆傚ぇ瀹跺彲浠ョ湅鐪嬬浉鍏崇殑C++鐨勪功綾嶃傚湪榪欑瘒鏂囩珷涓紝鎴戝彧鎯充粠铏氬嚱鏁扮殑瀹炵幇鏈哄埗涓婇潰涓哄ぇ瀹? 涓涓竻鏅扮殑鍓栨瀽銆?

褰撶劧錛岀浉鍚岀殑鏂囩珷鍦ㄧ綉涓婁篃鍑虹幇榪囦竴浜涗簡錛屼絾鎴戞繪劅瑙夎繖浜涙枃绔犱笉鏄緢瀹規槗闃呰錛屽ぇ孌靛ぇ孌電殑浠g爜錛屾病鏈夊浘鐗囷紝娌℃湁璇︾粏鐨勮鏄庯紝娌℃湁姣旇緝錛屾病鏈変婦 涓鍙嶄笁銆備笉鍒╀簬瀛︿範鍜岄槄璇伙紝鎵浠ヨ繖鏄垜鎯沖啓涓嬭繖綃囨枃绔犵殑鍘熷洜銆備篃甯屾湜澶у澶氱粰鎴戞彁鎰忚銆?

璦褰掓浼狅紝璁╂垜浠竴璧瘋繘鍏ヨ櫄鍑芥暟鐨勪笘鐣屻?

铏氬嚱鏁拌〃

瀵笴++ 浜嗚В鐨勪漢閮藉簲璇ョ煡閬撹櫄鍑芥暟錛圴irtual Function錛夋槸閫氳繃涓寮犺櫄鍑芥暟琛紙Virtual Table錛夋潵瀹炵幇鐨勩傜畝縐頒負V-Table銆? 鍦ㄨ繖涓〃涓紝涓繪槸瑕佷竴涓被鐨勮櫄鍑芥暟鐨勫湴鍧琛紝榪欏紶琛ㄨВ鍐充簡緇ф壙銆佽鐩栫殑闂錛屼繚璇佸叾瀹圭湡瀹炲弽搴斿疄闄呯殑鍑芥暟銆傝繖鏍鳳紝鍦ㄦ湁铏氬嚱鏁扮殑綾葷殑瀹炰緥涓繖涓〃琚垎閰嶅湪浜? 榪欎釜瀹炰緥鐨勫唴瀛樹腑錛屾墍浠ワ紝褰撴垜浠敤鐖剁被鐨勬寚閽堟潵鎿嶄綔涓涓瓙綾葷殑鏃跺欙紝榪欏紶铏氬嚱鏁拌〃灝辨樉寰楃敱涓洪噸瑕佷簡錛屽畠灝卞儚涓涓湴鍥句竴鏍鳳紝鎸囨槑浜嗗疄闄呮墍搴旇璋冪敤鐨勫嚱鏁般?

榪欓噷鎴戜滑鐫閲嶇湅涓涓嬭繖寮犺櫄鍑芥暟琛ㄣ傚湪C++鐨勬爣鍑嗚鏍艱鏄庝功涓鍒幫紝緙栬瘧鍣ㄥ繀闇瑕佷繚璇佽櫄鍑芥暟琛ㄧ殑鎸囬拡瀛樺湪浜庡璞″疄渚嬩腑鏈鍓嶉潰鐨勪綅緗紙榪欐槸涓? 浜嗕繚璇佹紜彇鍒拌櫄鍑芥暟鐨勫亸縐婚噺錛夈?榪欐剰鍛崇潃鎴戜滑閫氳繃瀵硅薄瀹炰緥鐨勫湴鍧寰楀埌榪欏紶铏氬嚱鏁拌〃錛岀劧鍚庡氨鍙互閬嶅巻鍏朵腑鍑芥暟鎸囬拡錛屽茍璋冪敤鐩稿簲鐨勫嚱鏁般?

鍚垜鎵簡閭d箞澶氾紝鎴戝彲浠ユ劅瑙夊嚭鏉ヤ綘鐜板湪鍙兘姣斾互鍓嶆洿鍔犳檿澶磋漿鍚戜簡銆?娌″叧緋伙紝涓嬮潰灝辨槸瀹為檯鐨勪緥瀛愶紝鐩鎬俊鑱槑鐨勪綘涓鐪嬪氨鏄庣櫧浜嗐?

鍋囪鎴戜滑鏈夎繖鏍風殑涓涓被錛?

class Base {

public:

virtual void f() { cout << "Base::f" << endl; }

virtual void g() { cout << "Base::g" << endl; }

virtual void h() { cout << "Base::h" << endl; }

};

鎸夌収涓婇潰鐨勮娉曪紝鎴戜滑鍙互閫氳繃Base鐨勫疄渚嬫潵寰楀埌铏氬嚱鏁拌〃銆?涓嬮潰鏄疄闄呬緥紼嬶細

typedef void(*Fun)(void);

Base b;

Fun pFun = NULL;

cout << "铏氬嚱鏁拌〃鍦板潃錛? << (int*)(&b) << endl;

cout << "铏氬嚱鏁拌〃 鈥?絎竴涓嚱鏁板湴鍧錛? << (int*)*(int*)(&b) << endl;

// Invoke the first virtual function

pFun = (Fun)*((int*)*(int*)(&b));

pFun();

瀹為檯榪愯緇忔灉濡備笅錛?Windows XP+VS2003, Linux 2.6.22 + GCC 4.1.3)

铏氬嚱鏁拌〃鍦板潃錛?012FED4

铏氬嚱鏁拌〃 鈥?絎竴涓嚱鏁板湴鍧錛?044F148

Base::f

閫氳繃榪欎釜紺轟緥錛屾垜浠彲浠ョ湅鍒幫紝鎴戜滑鍙互閫氳繃寮鴻鎶?amp;b杞垚int *錛屽彇寰楄櫄鍑芥暟琛ㄧ殑鍦板潃錛岀劧鍚庯紝鍐嶆鍙栧潃灝卞彲浠ュ緱鍒扮涓涓櫄鍑芥暟鐨勫湴鍧浜嗭紝涔熷氨鏄疊ase::f()錛岃繖鍦ㄤ笂闈㈢殑紼嬪簭涓緱鍒頒簡楠岃瘉錛堟妸int* 寮哄埗杞垚浜嗗嚱鏁版寚閽堬級銆傞氳繃榪欎釜紺轟緥錛屾垜浠氨鍙互鐭ラ亾濡傛灉瑕佽皟鐢˙ase::g()鍜孊ase::h()錛屽叾浠g爜濡備笅錛?

(Fun)*((int*)*(int*)(&b)+0); // Base::f()

(Fun)*((int*)*(int*)(&b)+1); // Base::g()

(Fun)*((int*)*(int*)(&b)+2); // Base::h()

榪欎釜鏃跺欎綘搴旇鎳備簡鍚с備粈涔堬紵榪樻槸鏈夌偣鏅曘備篃鏄紝榪欐牱鐨勪唬鐮佺湅鐫澶貢浜嗐傛病闂錛岃鎴戠敾涓浘瑙i噴涓涓嬨傚涓嬫墍紺猴細

娉ㄦ剰錛氬湪涓婇潰榪欎釜鍥句腑錛屾垜鍦ㄨ櫄鍑芥暟琛ㄧ殑鏈鍚庡鍔犱簡涓涓粨鐐癸紝榪欐槸铏氬嚱鏁拌〃鐨勭粨鏉熺粨鐐癸紝灝卞儚瀛楃涓茬殑緇撴潫絎?#8220;\0”涓鏍鳳紝鍏舵爣蹇椾簡铏氬嚱鏁拌〃鐨? 緇撴潫銆傝繖涓粨鏉熸爣蹇楃殑鍊煎湪涓嶅悓鐨勭紪璇戝櫒涓嬫槸涓嶅悓鐨勩傚湪WinXP+VS2003涓嬶紝榪欎釜鍊兼槸NULL銆傝屽湪Ubuntu 7.10 + Linux 2.6.22 + GCC 4.1.3涓嬶紝榪欎釜鍊兼槸濡傛灉1錛岃〃紺鴻繕鏈変笅涓涓櫄鍑芥暟琛紝濡傛灉鍊兼槸0錛岃〃紺烘槸鏈鍚庝竴涓櫄鍑芥暟琛ㄣ?

涓嬮潰錛屾垜灝嗗垎鍒鏄?#8220;鏃犺鐩?#8221;鍜?#8220;鏈夎鐩?#8221;鏃剁殑铏氬嚱鏁拌〃鐨勬牱瀛愩傛病鏈夎鐩栫埗綾葷殑铏氬嚱鏁版槸姣棤鎰忎箟鐨勩傛垜涔嬫墍浠ヨ璁茶堪娌℃湁瑕嗙洊鐨勬儏鍐碉紝涓昏鐩? 鐨勬槸涓轟簡緇欎竴涓姣斻傚湪姣旇緝涔嬩笅錛屾垜浠彲浠ユ洿鍔犳竻妤氬湴鐭ラ亾鍏跺唴閮ㄧ殑鍏蜂綋瀹炵幇銆?

涓鑸戶鎵匡紙鏃犺櫄鍑芥暟瑕嗙洊錛?/h3>

涓嬮潰錛屽啀璁╂垜浠潵鐪嬬湅緇ф壙鏃剁殑铏氬嚱鏁拌〃鏄粈涔堟牱鐨勩傚亣璁炬湁濡備笅鎵紺虹殑涓涓戶鎵垮叧緋伙細

璇鋒敞鎰忥紝鍦ㄨ繖涓戶鎵垮叧緋諱腑錛屽瓙綾繪病鏈夐噸杞戒換浣曠埗綾葷殑鍑芥暟銆傞偅涔堬紝鍦ㄦ淳鐢熺被鐨勫疄渚嬩腑錛屽叾铏氬嚱鏁拌〃濡備笅鎵紺猴細

瀵逛簬瀹炰緥錛欴erive d; 鐨勮櫄鍑芥暟琛ㄥ涓嬶細

鎴戜滑鍙互鐪嬪埌涓嬮潰鍑犵偣錛?

1錛夎櫄鍑芥暟鎸夌収鍏跺0鏄庨『搴忔斁浜庤〃涓?

2錛夌埗綾葷殑铏氬嚱鏁板湪瀛愮被鐨勮櫄鍑芥暟鍓嶉潰銆?

鎴戠浉淇¤仾鏄庣殑浣犱竴瀹氬彲浠ュ弬鑰冨墠闈㈢殑閭d釜紼嬪簭錛屾潵緙栧啓涓孌電▼搴忔潵楠岃瘉銆?

涓鑸戶鎵匡紙鏈夎櫄鍑芥暟瑕嗙洊錛?/h3>

瑕嗙洊鐖剁被鐨勮櫄鍑芥暟鏄緢鏄劇劧鐨勪簨鎯咃紝涓嶇劧錛岃櫄鍑芥暟灝卞彉寰楁鏃犳剰涔夈備笅闈紝鎴戜滑鏉ョ湅涓涓嬶紝濡傛灉瀛愮被涓湁铏氬嚱鏁伴噸杞戒簡鐖剁被鐨勮櫄鍑芥暟錛屼細鏄竴涓粈涔堟牱瀛愶紵鍋? 璁撅紝鎴戜滑鏈変笅闈㈣繖鏍風殑涓涓戶鎵垮叧緋匯?

涓轟簡璁╁ぇ瀹剁湅鍒拌緇ф壙榪囧悗鐨勬晥鏋滐紝鍦ㄨ繖涓被鐨勮璁′腑錛屾垜鍙鐩栦簡鐖剁被鐨勪竴涓嚱鏁幫細f()銆傞偅涔堬紝瀵逛簬媧劇敓綾葷殑瀹炰緥錛屽叾铏氬嚱鏁拌〃浼氭槸涓嬮潰鐨勪竴 涓牱瀛愶細

鎴戜滑浠庤〃涓彲浠ョ湅鍒頒笅闈㈠嚑鐐癸紝

1錛夎鐩栫殑f()鍑芥暟琚斁鍒頒簡铏氳〃涓師鏉ョ埗綾昏櫄鍑芥暟鐨勪綅緗?

2錛夋病鏈夎瑕嗙洊鐨勫嚱鏁頒緷鏃с?

榪欐牱錛屾垜浠氨鍙互鐪嬪埌瀵逛簬涓嬮潰榪欐牱鐨勭▼搴忥紝

Base *b = new Derive();

b->f();

鐢眀鎵鎸囩殑鍐呭瓨涓殑铏氬嚱鏁拌〃鐨刦()鐨勪綅緗凡緇忚Derive::f()鍑芥暟鍦板潃鎵鍙栦唬錛屼簬鏄湪瀹為檯璋冪敤鍙戠敓鏃訛紝鏄疍erive::f() 琚皟鐢ㄤ簡銆傝繖灝卞疄鐜頒簡澶氭併?

澶氶噸緇ф壙錛堟棤铏氬嚱鏁拌鐩栵級

涓嬮潰錛屽啀璁╂垜浠潵鐪嬬湅澶氶噸緇ф壙涓殑鎯呭喌錛屽亣璁炬湁涓嬮潰榪欐牱涓涓被鐨勭戶鎵垮叧緋匯傛敞鎰忥細瀛愮被騫舵病鏈夎鐩栫埗綾葷殑鍑芥暟銆?

瀵逛簬瀛愮被瀹炰緥涓殑铏氬嚱鏁拌〃錛屾槸涓嬮潰榪欎釜鏍峰瓙錛?

鎴戜滑鍙互鐪嬪埌錛?

1錛?姣忎釜鐖剁被閮芥湁鑷繁鐨勮櫄琛ㄣ?

2錛?瀛愮被鐨勬垚鍛樺嚱鏁拌鏀懼埌浜嗙涓涓埗綾葷殑琛ㄤ腑銆傦紙鎵璋撶殑絎竴涓埗綾繪槸鎸夌収澹版槑欏哄簭鏉ュ垽鏂殑錛?

榪欐牱鍋氬氨鏄負浜嗚В鍐充笉鍚岀殑鐖剁被綾誨瀷鐨勬寚閽堟寚鍚戝悓涓涓瓙綾誨疄渚嬶紝鑰岃兘澶熻皟鐢ㄥ埌瀹為檯鐨勫嚱鏁般?

澶氶噸緇ф壙錛堟湁铏氬嚱鏁拌鐩栵級

涓嬮潰鎴戜滑鍐嶆潵鐪嬬湅錛屽鏋滃彂鐢熻櫄鍑芥暟瑕嗙洊鐨勬儏鍐點?

涓嬪浘涓紝鎴戜滑鍦ㄥ瓙綾諱腑瑕嗙洊浜嗙埗綾葷殑f()鍑芥暟銆?

涓嬮潰鏄浜庡瓙綾誨疄渚嬩腑鐨勮櫄鍑芥暟琛ㄧ殑鍥撅細

鎴戜滑鍙互鐪嬭錛屼笁涓埗綾昏櫄鍑芥暟琛ㄤ腑鐨刦()鐨勪綅緗鏇挎崲鎴愪簡瀛愮被鐨勫嚱鏁版寚閽堛傝繖鏍鳳紝鎴戜滑灝卞彲浠ヤ換涓闈欐佺被鍨嬬殑鐖剁被鏉ユ寚鍚戝瓙綾伙紝騫惰皟鐢ㄥ瓙綾葷殑 f()浜嗐傚錛?

Derive d;

Base1 *b1 = &d;

Base2 *b2 = &d;

Base3 *b3 = &d;

b1->f(); //Derive::f()

b2->f(); //Derive::f()

b3->f(); //Derive::f()

b1->g(); //Base1::g()

b2->g(); //Base2::g()

b3->g(); //Base3::g()

瀹夊叏鎬?/h3>

姣忔鍐機++鐨勬枃绔狅紝鎬誨厤涓嶄簡瑕佹壒鍒や竴涓婥++銆傝繖綃囨枃绔犱篃涓嶄緥澶栥傞氳繃涓婇潰鐨勮榪幫紝鐩鎬俊鎴戜滑瀵硅櫄鍑芥暟琛ㄦ湁涓涓瘮杈冪粏鑷寸殑浜嗚В浜嗐傛按鍙澆鑸燂紝浜﹀彲瑕? 鑸熴備笅闈紝璁╂垜浠潵鐪嬬湅鎴戜滑鍙互鐢ㄨ櫄鍑芥暟琛ㄦ潵騫茬偣浠涔堝潖浜嬪惂銆?

涓銆侀氳繃鐖剁被鍨嬬殑鎸囬拡璁塊棶瀛愮被鑷繁鐨勮櫄鍑芥暟

鎴戜滑鐭ラ亾錛屽瓙綾繪病鏈夐噸杞界埗綾葷殑铏氬嚱鏁版槸涓浠舵鏃犳剰涔夌殑浜嬫儏銆傚洜涓哄鎬佷篃鏄鍩轟簬鍑芥暟閲嶈澆鐨勩傝櫧鐒跺湪涓婇潰鐨勫浘涓垜浠彲浠ョ湅鍒癇ase1鐨勮櫄琛? 涓湁Derive鐨勮櫄鍑芥暟錛屼絾鎴戜滑鏍規湰涓嶅彲鑳戒嬌鐢ㄤ笅闈㈢殑璇彞鏉ヨ皟鐢ㄥ瓙綾葷殑鑷湁铏氬嚱鏁幫細

Base1 *b1 = new Derive();

b1->f1(); //緙栬瘧鍑洪敊

浠諱綍濡勫浘浣跨敤鐖剁被鎸囬拡鎯寵皟鐢ㄥ瓙綾諱腑鐨?strong>鏈鐩栫埗綾葷殑鎴愬憳鍑芥暟鐨勮涓洪兘浼氳緙栬瘧鍣ㄨ涓洪潪娉曪紝鎵浠ワ紝榪欐牱鐨勭▼ 搴忔牴鏈棤娉曠紪璇戦氳繃銆備絾鍦ㄨ繍琛屾椂錛屾垜浠彲浠ラ氳繃鎸囬拡鐨勬柟寮忚闂櫄鍑芥暟琛ㄦ潵杈懼埌榪濆弽C++璇箟鐨勮涓恒傦紙鍏充簬榪欐柟闈㈢殑灝濊瘯錛岄氳繃闃呰鍚庨潰闄勫綍鐨勪唬鐮侊紝鐩鎬俊浣? 鍙互鍋氬埌榪欎竴鐐癸級

浜屻佽闂畁on-public鐨勮櫄鍑芥暟

鍙﹀錛屽鏋滅埗綾葷殑铏氬嚱鏁版槸private鎴栨槸protected鐨勶紝浣嗚繖浜涢潪public鐨勮櫄鍑芥暟鍚屾牱浼氬瓨鍦ㄤ簬铏氬嚱鏁拌〃涓紝鎵浠ワ紝鎴戜滑鍚屾牱 鍙互浣跨敤璁塊棶铏氬嚱鏁拌〃鐨勬柟寮忔潵璁塊棶榪欎簺non-public鐨勮櫄鍑芥暟錛岃繖鏄緢瀹規槗鍋氬埌鐨勩?

濡傦細

class Base {

private:

virtual void f() { cout << "Base::f" << endl; }

};

class Derive : public Base{

};

typedef void(*Fun)(void);

void main() {

Derive d;

Fun pFun = (Fun)*((int*)*(int*)(&d)+0);

pFun();

}

緇撴潫璇?/h3>

C++榪欓棬璇█鏄竴闂∕agic鐨勮璦錛屽浜庣▼搴忓憳鏉ヨ錛屾垜浠技涔庢案榪滄懜涓嶆竻妤氳繖闂ㄨ璦鑳岀潃鎴戜滑鍦ㄥ共浜嗕粈涔堛傞渶瑕佺啛鎮夎繖闂ㄨ璦錛屾垜浠氨蹇呴渶瑕佷簡瑙? C++閲岄潰鐨勯偅浜涗笢瑗匡紝闇瑕佸幓浜嗚ВC++涓偅浜涘嵄闄╃殑涓滆タ銆備笉鐒訛紝榪欐槸涓縐嶆惉璧風煶澶寸牳鑷繁鑴氱殑緙栫▼璇█銆?/p>

]]> 国内精品伊人久久久久av一坑| 久久久久久综合网天天| 久久综合久久自在自线精品自| 久久人人爽人人爽人人片av高请| 97精品依人久久久大香线蕉97| 国产亚洲色婷婷久久99精品91| 欧美久久综合九色综合| 久久亚洲AV成人出白浆无码国产 | 91亚洲国产成人久久精品网址| 久久精品成人一区二区三区| 精品国产91久久久久久久 | 99久久精品无码一区二区毛片| 无码精品久久一区二区三区 | 欧美日韩精品久久免费| 国产成人精品久久亚洲高清不卡| 波多野结衣久久一区二区| 青青青国产精品国产精品久久久久| 奇米综合四色77777久久| 美女写真久久影院| 精品人妻久久久久久888| 一本色综合久久| 亚洲日韩欧美一区久久久久我| 99久久中文字幕| 97久久精品无码一区二区| 久久99热这里只有精品66| 久久精品国产亚洲Aⅴ香蕉| 国产精品无码久久久久久| 亚洲人成精品久久久久| 亚洲AV无码久久精品蜜桃| 亚洲精品乱码久久久久久不卡| 伊人色综合久久| 91精品久久久久久无码| 久久精品视频免费| 青青青国产精品国产精品久久久久| 乱亲女H秽乱长久久久| 无码超乳爆乳中文字幕久久| 久久久久久久精品成人热色戒| 欧美日韩精品久久免费| 久久精品中文字幕大胸| 久久久精品国产sm调教网站| 久久综合综合久久97色|