锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久久久久中文字幕,99久久精品国产一区二区三区,久久久久99这里有精品10http://www.shnenglu.com/lynch/category/17492.htmlzh-cnTue, 01 Jan 2013 19:15:37 GMTTue, 01 Jan 2013 19:15:37 GMT60C++ UML灝忕粨http://www.shnenglu.com/lynch/archive/2012/12/21/196518.html钁d笁钁d笁Fri, 21 Dec 2012 14:09:00 GMThttp://www.shnenglu.com/lynch/archive/2012/12/21/196518.htmlhttp://www.shnenglu.com/lynch/comments/196518.htmlhttp://www.shnenglu.com/lynch/archive/2012/12/21/196518.html#Feedback0http://www.shnenglu.com/lynch/comments/commentRss/196518.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/196518.html鍦║ML綾誨浘涓?綾諱笌綾諱箣闂存湁鍑犵甯歌鍏崇郴:渚濊禆銆佸叧鑱斻佽仛鍚堛佺粍鍚堛佹硾鍖栥?

1銆佷緷璧栵紙Dependency錛?/strong>


渚濊禆鏄竴縐嶅緢鏈夌敤鐨勫叧緋伙紝瀹冪敤鏉ヨ〃榪頒竴涓被A“use”浜嗗彟涓涓被B銆侫鍙互鏄氳繃浠諱綍鏂瑰紡“use”綾籅錛屽錛?/p>

1錛堿鐨勬垚鍛樺嚱鏁扮殑榪斿洖鍊間負B錛?/font>

2錛堿鐨勬垚鍛樺嚱鏁頒嬌鐢˙浣滀負鍑芥暟鍙傛暟錛?/font>

3錛堿鐨勬垚鍛樺嚱鏁扮殑鍐呴儴瀹炵幇浣跨敤浜咮錛?/font>

渚濊禆鍏崇郴閫氬父浣跨敤铏氱嚎綆ご“---->”琛ㄧず錛岀澶存寚鍚戣“use”鐨勭被銆?

image

鍦–++浠g爜涓紝渚濊禆鍏崇郴鏄繖鏍峰搴旂殑錛?/p>

class A

{ public: B returns_a_B();

void has_a_B_argument(B);

void has_a_B_in_its_implementation();

};

A::void has_a_B_in_its_implementation(){ B b; }

2銆佸叧鑱旓紙Association錛?/strong>

鍏寵仈鍙互琛ㄨ堪鎴愪竴涓被“鐭ラ亾”鍙︿竴涓被銆傚浣?#8220;鐭ラ亾”鍛紵鍦–++涓紝綾籄“鐭ラ亾”綾籅涓鑸槸閫氳繃鎸囬拡瀹炵幇鐨勶紙涔熷彲浠ヤ嬌鐢ㄥ紩鐢ㄦ垨鑰呭鹼級錛屽嵆綾籄鏈変竴涓垚鍛樺彉閲忔槸鎸囧悜B鐨勬寚閽堬紙鎴栬呭紩鐢ㄣ佸鹼級銆?/p>

鍏寵仈鍙互鍒嗕負鍙屽悜鍏寵仈銆佸崟鍚戝叧鑱斻佽嚜韜叧鑱斻?

1錛夊弻鍚戝叧鑱?

鍙屽悜鍏寵仈A-B錛氬弻鏂歸兘“鐭ラ亾”瀵規柟錛岄兘鍙互璋冪敤瀵規柟鐨勫叕鍏卞睘鎬у拰鏂規硶銆?

image

瀵瑰簲鐨凜++浠g爜涓猴細

class A {

public:

B* pB;

};

class B {

public:

A* pA;

};

2錛夊崟鍚戝叧鑱?

鍗曞悜鍏寵仈A->B錛氳〃紺篈“鐭ラ亾”B錛孉鍙互璋冪敤B鐨勫叕鍏卞睘鎬у拰鏂規硶銆傛病鏈夌敓鍛藉懆鏈熺殑渚濊禆銆?

image

瀵瑰簲鐨凜++浠g爜涓猴細

class A {

public:

B* pB;

};

class B {

};

3錛夎嚜韜叧鑱?

鑷韓鍏寵仈錛氳嚜宸卞紩鐢ㄨ嚜宸憋紝榪欎釜鍦ㄩ摼琛ㄤ腑闈炲父甯歌銆?/p>

鍙互鐪嬪埌錛屼笂闈㈢殑Object綾伙紝灝辨槸涓涓嚜韜叧鑱旂殑搴旂敤錛屽畠鏈変竴涓嚜宸辨寚鍚戣嚜宸辯殑鎸囬拡錛岀敤鏉ュ疄鐜伴摼琛ㄣ?

image

瀵瑰簲鐨凜++浠g爜涓猴細

class Object {

public:

int data;

Object* next;

};

class ObjectList {

public:

Object* first;

ObjectList();

void insert(Object* obj);

void print() const;

};

3銆佽仛鍚堬紙Aggregation錛夊拰緇勫悎錛圕omposition錛?/strong>

鑱氬悎鍜岀粍鍚堥兘鏄敤鍦ㄨ〃榪版暣浣?閮ㄥ垎鍏崇郴鐨勬椂鍊欙紝浜岃呭彧鏄湪鐢熷懡鍛ㄦ湡闂涓婃湁宸紓銆?/p>

1錛夎仛鍚堥氬父鍙互鐞嗚В鎴?#8220;has a”鍏崇郴銆傚鏋滅被A鑱氬悎綾籅錛岄偅涔堢被A“has a”綾籅錛屽悓鏃訛紝鍦ˋ鐨勭敓鍛藉懆鏈熺粨鏉熷悗綾籅蹇呴』渚濈劧瀛樺湪鎴栬呮湁鎰忎箟銆傛瘮濡傛埧闂存湁涓寮犳瀛愶紝閭d箞鎴塊棿鍜屾瀛愮殑鍏崇郴灝辨槸鑱氬悎錛氬嵆浣挎埧闂存病鏈変簡錛岄偅寮犳瀛愯繕鏄瓨鍦ㄧ殑錛屾瀛愭槸鍙互鑴辯鎴塊棿鑰屽瓨鍦ㄧ殑銆?

image

瀵瑰簲鐨凜++浠g爜錛?/p>

class Table {

};

class Room {

public:

Table aTable;

};

2錛夌粍鍚堥氬父鍙互鐞嗚В涓?#8220;is a part of”銆傚拰鑱氬悎涓嶅悓鐨勬槸錛屽鏋滅被A緇勫悎綾籅錛岄偅涔堝綋A鐢熷懡鍛ㄦ湡緇撴潫鍚庯紝綾籅涔熼殢涔嬬粨鏉燂紝涔熷氨鏄B涓嶈兘鑴辯綾籄鑰屽瓨鍦ㄣ傚氨濡傚悓楦熼兘鏈変袱鍙繀鑶涓鏍鳳紝褰撻笩娑堝け浜嗭紝緲呰唨涔熼殢涔嬩笉瀛樺湪浜嗐?

image

瀵瑰簲鐨凜++浠g爜錛?/p>

class Wing {

};

class Bird{

public:

Wing leftWing;

Wing rightWing;

};

鍙互鍙戠幇錛屽鏋滃崟綰粠C++浠g爜鏉ョ湅錛岃仛鍚堝叧緋誨拰緇勫悎鍏崇郴娌℃湁浠涔堜笉鍚岋紝瑕佸尯鍒嗚仛鍚堝拰緇勫悎錛屽彧鑳戒粠璇箟鍒嗘瀽銆?/font>

琛ュ厖錛?/strong>

緇勫悎鍏崇郴榪樻湁鍙︿竴灞傚惈涔夛細“is a”銆備笉榪囪繖縐嶅惈涔夛紝浠呬粎鐢ㄦ潵瑙掕壊鏂歸潰錛屽嵆“is a”瑙掕壊銆傛瘮濡備竴涓漢錛屾槸涓堝か瑙掕壊銆傞偅涔熷彲浠ョ湅鍋氱粍鍚堬紱鎵嬫満鍙互鐪嬪仛“Camera”銆?#8220;Music Player”絳夈?

image

浠庝笂鍥炬垜浠彲浠ョ湅鍑猴紝Battery鍜孲mart Phone鏄仛鍚堝叧緋伙紝鍥犱負鐢墊睜鏄墜鏈虹殑涓閮ㄥ垎錛屼絾鏄數姹犲彲浠ヨ劚紱繪墜鏈鴻屽瓨鍦ㄣ傝孖MEI Number鍜孲mart Phone鏄粍鍚堝叧緋伙紝涓鑸儏鍐典笅涓涓猄mart Phone鍙湁涓涓狪MEI Number,鎵嬫満娑堝け鍚庯紝IMEI璺熺潃娑堝け銆傝屾垜浠煡閬撶幇鍦ㄧ殑鎵嬫満鍙互鎷嶇収銆佷笂緗戙佹挱鏀鵑煶涔愶紝鍥犳鎵嬫満鍙互鎵紨鐩告満銆亀eb鍐叉氮銆侀煶涔愭挱鏀懼櫒鐨勮鑹詫紝鎵浠mart phone鍜孋amera銆乄eb Browser銆丮usic Player鏄粍鍚堢殑鍏崇郴銆?/p>

4銆佹硾鍖栵紙Realization錛?/strong>

娉涘寲鍏崇郴涔熻甯哥敤浣滅戶鎵匡紙inherit錛夊叧緋伙紝鏄敤鏉ヨ〃榪?#8220;Is-a”榪欑鍏崇郴鐨勶紝姣斿Car鍜孭olice-Car鐨勫叧緋伙紝Police-Car “is a” Car銆?

image

瀵瑰簲鐨凜++浠g爜涓猴細

class Car {

};

class Police_Car{

};


钁d笁 2012-12-21 22:09 鍙戣〃璇勮
]]>
璁〤++鏀寔interfacehttp://www.shnenglu.com/lynch/archive/2012/12/14/196250.html钁d笁钁d笁Fri, 14 Dec 2012 06:21:00 GMThttp://www.shnenglu.com/lynch/archive/2012/12/14/196250.htmlhttp://www.shnenglu.com/lynch/comments/196250.htmlhttp://www.shnenglu.com/lynch/archive/2012/12/14/196250.html#Feedback0http://www.shnenglu.com/lynch/comments/commentRss/196250.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/196250.html    鍦ㄦ棰樼殑灞曞紑鍓嶏紝鎴戜滑鍏堟潵鐪嬩竴孌礐++浠g爜錛?/em>
  1. class IX {
  2.   public:
  3.     virtual void Fx1() = 0;
  4.     virtual void Fx2() = 0;
  5. };
    榪欐槸涓孌電畝鍗曠殑鎺ュ彛澹版槑浠g爜錛欼X鏄敤浜庡疄鐜版帴鍙g殑綰娊璞″熀綾匯傜函鎶借薄鍩虹被鎸囩殑鏄粎鍖呮嫭綰櫄鍑芥暟鐨勫熀綾匯傜函铏氬嚱鏁版槸鎸囩敤=0鏍囪鐨勮櫄鍑芥暟錛屾垜浠線寰鎶?0縐頒綔綰櫄鍑芥暟鎸囩ず絎︺?/span>
    铏氬熀綾繪槸涓嶈兘瀹炰緥鍖栫殑錛屾崲鍙ヨ瘽璇達紝铏氬熀綾誨彧鏄彁渚涗竴涓猧nterface鐨勫姛鑳斤紝瀹冨茍涓嶅疄鐜拌繖浜涚函铏氬嚱鏁般傝繖璁╂垜浠兂璧稢#/Java璇█閲岄潰鐨刬nterface鍏抽敭瀛楋紝interface鍜宑lass涓嶅悓錛宨nterface浠呮湁鎺ュ彛澹版槑錛岃屼笖鎵鏈夌殑澹版槑榛樿鐨勮闂潈闄愭槸public鑰岄潪private錛岃繖璁╂垜浠彲浠ョ敤C++鐨剆truct鏉ユā鎷焛nterface錛屽洜涓簊truct榛樿鐨勮闂潈闄愪篃鏄痯ublic銆?/div>
    璁╂垜浠畝鍗曠殑鍔犱竴涓害瀹氾細
  1. #define interface struct
    浣跨敤struct鐨勫師鍥犲湪浜巗truct鐨勬垚鍛樺皢鑷姩鍏鋒湁鍏湁鐨勫睘鎬э紝鍥犳涓嶉渶瑕佸彟澶栧湪瀹氫箟鍔犱笂public鍏抽敭瀛椼傚幓鎺塸ublic鍏抽敭瀛楀彲浠ュ噺灝戜竴浜涙販涔便傛牴鎹繖涓害瀹氾紝鎴戜滑寮濮嬬殑浠g爜鍙互閲嶆柊瀹氫箟濡備笅錛?/span>
  1. interface IX {
  2.     virtual void Fx1() = 0;
  3.     virtual void Fx2() = 0;
  4. };
   鍙互鐪嬪埌錛屽皯浜唒ublic錛屽噺灝戜簡娣蜂貢銆傚悓鏃秈nterface鍙互閫忛湶鍑猴紝榪欎笉鏄竴涓櫘閫氱殑class錛岃屾槸涓涓帴鍙c?/span>
   涓嬮潰鎴戜滑妯℃嫙涓涓湁涓や釜鎺ュ彛鐨勭粍浠禼omponent鐨勭畝鍗曡闂?/div>
  1. //Filename: base.hpp
  2. #define interface struct

  1. //Filename: IFace.cpp
  2. #include<iostream>
  3. #include"base.hpp"

  4. //鍦╨inux緇堢浠ョ孩鑹叉墦鍗皃Msg瀛楃涓?/li>
  5. void trace(const char* pMsg) { std::cout<<"\033[0;31m"<< pMsg <<"\033[0m"<<std::endl; }

  6. // Abstract Interfaces
  7. interface IX {
  8.     virtual void Fx1() = 0;
  9.     virtual void Fx2() = 0;
  10. };

  11. interface IY {
  12.     virtual void Fy1() = 0;
  13.     virtual void Fy2() = 0;
  14. };

  15. // Interface implementation
  16. class CA : public IX,public IY {
  17.     public:
  18.         // Implement interface IX.
  19.         virtual void Fx1() { std::cout<< "CA::Fx1" <<std::endl; }
  20.         virtual void Fx2() { std::cout<< "CA::Fx2" <<std::endl; }
  21.         //Implement interface IY.
  22.         virtual void Fy1() { std::cout<< "CA::Fy1" <<std::endl; }
  23.         virtual void Fy2() { std::cout<< "CA::Fy2" <<std::endl; }
  24. };

  25. //client
  26. int main() {
  27.     trace("Client:Create an instance of the component.");
  28.     CA *pA = new CA;
  29.     //Get an IX pointer
  30.     IX* pIX = pA;
  31.     trace("Client: Use the IX interface.");
  32.     pIX->Fx1();
  33.     pIX->Fx2();
  34.     //Get an IY pointer
  35.     IY* pIY = pA;
  36.     trace("Client: Use the IY interface.");
  37.     pIY->Fy1();
  38.     pIY->Fy2();
  39.     trace("Client: Delete the component.");
  40.     
  41.     return 0;
  42. }
     紼嬪簭榪愯緇撴灉錛?/span>

      

       

 



钁d笁 2012-12-14 14:21 鍙戣〃璇勮
]]>C++ libxml2緙栫▼鍩虹(Ubuntu緋葷粺)http://www.shnenglu.com/lynch/archive/2012/12/14/196249.html钁d笁钁d笁Fri, 14 Dec 2012 06:08:00 GMThttp://www.shnenglu.com/lynch/archive/2012/12/14/196249.htmlhttp://www.shnenglu.com/lynch/comments/196249.htmlhttp://www.shnenglu.com/lynch/archive/2012/12/14/196249.html#Feedback1http://www.shnenglu.com/lynch/comments/commentRss/196249.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/196249.html闃呰鍏ㄦ枃

钁d笁 2012-12-14 14:08 鍙戣〃璇勮
]]>
streamstring 鏍煎紡杞崲http://www.shnenglu.com/lynch/archive/2011/10/02/157347.html钁d笁钁d笁Sun, 02 Oct 2011 05:48:00 GMThttp://www.shnenglu.com/lynch/archive/2011/10/02/157347.htmlhttp://www.shnenglu.com/lynch/comments/157347.htmlhttp://www.shnenglu.com/lynch/archive/2011/10/02/157347.html#Feedback0http://www.shnenglu.com/lynch/comments/commentRss/157347.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/157347.html闃呰鍏ㄦ枃

钁d笁 2011-10-02 13:48 鍙戣〃璇勮
]]>
銆愯漿銆慴zero & memset緗浂鐨勬ц兘姣旇緝 http://www.shnenglu.com/lynch/archive/2011/08/05/152521.html钁d笁钁d笁Fri, 05 Aug 2011 02:57:00 GMThttp://www.shnenglu.com/lynch/archive/2011/08/05/152521.htmlhttp://www.shnenglu.com/lynch/comments/152521.htmlhttp://www.shnenglu.com/lynch/archive/2011/08/05/152521.html#Feedback0http://www.shnenglu.com/lynch/comments/commentRss/152521.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/152521.html闃呰鍏ㄦ枃

钁d笁 2011-08-05 10:57 鍙戣〃璇勮
]]>
struct timeval鍜実ettimeofday錛堬級http://www.shnenglu.com/lynch/archive/2011/08/05/152520.html钁d笁钁d笁Fri, 05 Aug 2011 02:50:00 GMThttp://www.shnenglu.com/lynch/archive/2011/08/05/152520.htmlhttp://www.shnenglu.com/lynch/comments/152520.htmlhttp://www.shnenglu.com/lynch/archive/2011/08/05/152520.html#Feedback0http://www.shnenglu.com/lynch/comments/commentRss/152520.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/152520.html闃呰鍏ㄦ枃

钁d笁 2011-08-05 10:50 鍙戣〃璇勮
]]>
瀛︿範BOOST鐨勫ソ璧勬枡http://www.shnenglu.com/lynch/archive/2011/07/29/152052.html钁d笁钁d笁Fri, 29 Jul 2011 08:37:00 GMThttp://www.shnenglu.com/lynch/archive/2011/07/29/152052.htmlhttp://www.shnenglu.com/lynch/comments/152052.htmlhttp://www.shnenglu.com/lynch/archive/2011/07/29/152052.html#Feedback0http://www.shnenglu.com/lynch/comments/commentRss/152052.htmlhttp://www.shnenglu.com/lynch/services/trackbacks/152052.html闃呰鍏ㄦ枃

钁d笁 2011-07-29 16:37 鍙戣〃璇勮
]]>
国产亚洲精品久久久久秋霞| 久久精品国产99国产电影网| 日本国产精品久久| 国内精品久久久久影院老司 | 欧美日韩精品久久久久| 婷婷久久综合| 亚洲色欲久久久综合网| 久久亚洲精品中文字幕三区| 狠狠色伊人久久精品综合网| 国内精品久久久久影院老司| 久久er热视频在这里精品| 亚洲欧美日韩精品久久亚洲区 | 久久免费99精品国产自在现线| 日韩十八禁一区二区久久| 亚洲国产另类久久久精品黑人 | 久久成人国产精品| 日本精品久久久久影院日本| 久久久久亚洲AV片无码下载蜜桃| 精品人妻伦一二三区久久| 奇米综合四色77777久久| 久久亚洲国产精品123区| 精品久久777| 久久久久亚洲精品天堂| 久久精品中文无码资源站| 久久久久这里只有精品| 久久精品免费观看| 99久久国产热无码精品免费 | 国产91久久精品一区二区| 亚洲午夜久久久久妓女影院 | 狠狠久久亚洲欧美专区| 久久亚洲欧美国产精品| 国产亚洲精品久久久久秋霞| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久精品国产AV一区二区三区| 国内精品久久久久久久久电影网| 久久国产精品99国产精| 日韩精品久久无码中文字幕| 久久人人爽人人人人爽AV| 狠狠综合久久综合88亚洲| 久久婷婷五月综合国产尤物app | 国内精品久久久久影院免费|