锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
闇瑕佹敼鎴?PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;UNICODE;_WIN32_WINNT=0x0501"
鏈夌殑欏圭洰緙栬瘧涓嶄簡鏄洜涓?CharacterSet 鐨勯棶棰?/p>
銆銆褰撳勾鍥芥皯鍏氱殑鏂囦漢涓轟簡瀵規(guī)姉姣涙辰涓滅殑銆婃瞾鍥槬·闆嬶紝鐗規(guī)剰璇鋒竻鏈濋仐鑰佷滑鍐欎簡涓浜涘浠楀伐鏁寸殑璇楋紝璇瘋拫浠嬬煶榪囩洰銆傝佽拫鐪嬩簡姘斿緱澶ч獋錛?#8220;濞樺笇鍖癸紝鍏ㄩ兘鏈変竴鑲℃:鏉愰噷鑵愬案鐨勬皵鍛熾?#8221;鎴戠湅浜嗗嚑鍗冮〉鐨勮蔣浠跺伐紼嬭祫鏂欙紝緇堜簬鍙戠幇鑷繁鏈変簺“寮辨櫤”錛屾棤娉曠悊瑙?#8220;闈㈠悜瀵硅薄”鐨勭悊璁猴紝鍚屾椂閱掓?zhèn)熷?#8220;緙栫▼鏄‖閬撶悊銆?#8221;
銆銆闈㈠悜瀵硅薄紼嬪簭璁捐璇█寰堝錛屽Smalltalk銆丄da銆丒iffel銆丱bject Pascal銆乂isual Basic銆丆++絳夌瓑銆侰++璇█鏈璁ㄤ漢鍠滄錛屽洜涓哄畠鍏煎C 璇█錛屽茍涓斿叿澶嘋 璇█鐨勬ц兘銆傝繎鍑犲勾錛屼竴縐嶅彨Java 鐨勭函闈㈠悜瀵硅薄璇█綰㈡瀬涓鏃訛紝涓嶅皯浜哄彨鍠婄潃瑕佺敤Java 闈〤++鐨勫懡銆傛垜璁や負(fù)Java 濂芥瘮鏄疌++鐨勫鐢ワ紝铏界劧涓嶆槸鐩存帴閬椾紶鐨勶紝浣嗕篃鍑犲垎璞℃牱銆傚鐢ュ湪鑸呰垍韜笂鐜╄嶆椂媧掍簡涓娉″翱錛屼咯浜轟笉璇ヤ負(fù)姝よ屼簤鍚點?/p>
銆銆鍏充簬C++紼嬪簭璁捐鐨勪功钘夐潪甯稿錛屾湰绔犱笉璁睠++鐨勮娉曪紝鍙涓浜涘皬灝忕殑緙栫▼閬撶悊銆傚鏋滄垜鑳芥棭鍑犲勾鏄庣櫧榪欎簺灝忛亾鐞嗭紝灝卞彲浠ュぇ澶ф敼鍠勬暟鍗佷竾琛岀▼搴忕殑璐ㄩ噺浜嗐?/p>
1. C++闈㈠悜瀵硅薄紼嬪簭璁捐鐨勯噸瑕佹蹇?/strong>
銆銆鏃╂湡闈╁懡褰辯墖閲屾湁榪欐牱涓涓鑹詫紝浠栬錛?#8220;鎴戞槸鍏氫唬琛紝鎴戜唬琛ㄥ厷錛屾垜灝辨槸鍏氥?#8221;鍚庢潵浠栫粰鍚屽織浠甫鏉ヤ簡鐏鵑毦銆?/p>
銆銆浼?xì)鐢–++鐨勭▼搴忓憳涓瀹氭噦寰楅潰鍚戝璞$▼搴忚璁″悧錛?/p>
銆銆涓嶄細(xì)鐢–++鐨勭▼搴忓憳涓瀹氫笉鎳傚緱闈㈠悜瀵硅薄紼嬪簭璁捐鍚楋紵
銆銆涓よ呴兘鏈繀銆傚氨璞″潖铔嬪叆鍏氬悗鏈繀鑳芥垚涓哄ソ浜猴紝濂戒漢涓嶅叆鍏氭湭蹇呭彉鎴愬潖铔嬮偅鏍楓?/p>
銆銆鎴戜笉鎬曡Е鐘紬鎬掑湴璇村彞澶ц瘽錛?#8220;C++娌℃湁楂樻墜錛孋 璇█鎵嶆湁楂樻墜銆?#8221;鍦ㄧ敤C 鍜孋++緙栫▼8騫翠箣鍚庯紝鎴戞繁娣卞湴閬楁喚鑷繁涓嶆槸C 璇█鐨勯珮鎵嬶紝鏇撮仐鎲炬病鏈変漢鐐規(guī)嫧鎴戝浣曡繘琛岄潰鍚戝璞$▼搴忚璁°傛垜鍜屽緢澶欳++紼嬪簭鍛樹竴鏍鳳紝鍦ㄤ韓鐢ㄥ埌C++璇硶鐨勫ソ澶勬椂渚夸互涓鴻嚜宸卞凡緇忔槑鐧戒簡闈㈠悜瀵硅薄紼嬪簭璁捐銆傚氨璞℃尋鎺夌墮鑶忓崠鐗欒啅鐨偅鏍鳳紝鐪熸槸鏆存畡澶╃墿鍛銆?/p>
銆銆浜轟滑涓嶆噦鎷奸煶涔熶細(xì)璁叉櫘閫氳瘽錛屽鏋滄噦寰楁嫾闊沖垯浼?xì)鎶婃櫘閫氳瘽璁插緱鏇村ソ銆備笉鎳傞潰鍚戝璞$▼搴忚璁′篃鍙互鐢–++緙栫▼錛屽鏋滄噦寰楅潰鍚戝璞$▼搴忚璁″垯浼?xì)鎶奀++紼嬪簭緙栧緱鏇村ソ銆傛湰鑺傝榪頒笁涓潪甯稿熀紜鐨勬蹇碉細(xì)“綾諱笌瀵硅薄”銆?#8220;緇ф壙涓庣粍鍚?#8221;銆?#8220;铏氬嚱鏁頒笌澶氭?#8221;銆傜悊瑙h繖浜涙蹇碉紝鏈夊姪浜庢彁楂樼▼搴忕殑璐ㄩ噺錛岀壒鍒槸鎻愰珮“鍙鐢ㄦ?#8221;涓?#8220;鍙墿鍏呮?#8221;銆?/p>
1.1 綾諱笌瀵硅薄
銆銆瀵硅薄錛圤bject錛夋槸綾伙紙Class錛夌殑涓涓疄渚嬶紙Instance錛夈傚鏋滃皢瀵硅薄姣斾綔鎴垮瓙錛岄偅涔堢被灝辨槸鎴垮瓙鐨勮璁″浘綰搞傛墍浠ラ潰鍚戝璞$▼搴忚璁$殑閲嶇偣鏄被鐨勮璁★紝鑰屼笉鏄璞$殑璁捐銆傜被鍙互灝嗘暟鎹拰鍑芥暟灝佽鍦ㄤ竴璧鳳紝鍏朵腑鍑芥暟琛ㄧず浜嗙被鐨勮涓猴紙鎴栫О鏈嶅姟錛夈傜被鎻愪緵鍏抽敭瀛梡ublic銆乸rotected 鍜宲rivate 鐢ㄤ簬澹版槑鍝簺鏁版嵁鍜屽嚱鏁版槸鍏湁鐨勩佸彈淇濇姢鐨勬垨鑰呮槸縐佹湁鐨勩?/p>
銆銆榪欐牱鍙互杈懼埌淇℃伅闅愯棌鐨勭洰鐨勶紝鍗寵綾諱粎浠呭叕寮蹇呴』瑕佽澶栫晫鐭ラ亾鐨勫唴瀹癸紝鑰岄殣钘忓叾瀹冧竴鍒囧唴瀹廣傛垜浠笉鍙互婊ョ敤綾葷殑灝佽鍔熻兘錛屼笉瑕佹妸瀹冨綋鎴愮伀閿咃紝浠涔堜笢瑗塊兘寰閲屾墧銆?/p>
銆銆綾葷殑璁捐鏄互鏁版嵁涓轟腑蹇冿紝榪樻槸浠ヨ涓轟負(fù)涓績錛?/p>
銆銆涓誨紶“浠ユ暟鎹負(fù)涓績”鐨勯偅涓媧句漢鍏蟲敞綾葷殑鍐呴儴鏁版嵁緇撴瀯錛屼粬浠範(fàn)鎯笂灝唒rivate 綾誨瀷鐨勬暟鎹啓鍦ㄥ墠闈紝鑰屽皢public 綾誨瀷鐨勫嚱鏁板啓鍦ㄥ悗闈紝濡傝〃8.1(a)鎵紺恒?/p>
銆銆涓誨紶“浠ヨ涓轟負(fù)涓績”鐨勯偅涓媧句漢鍏蟲敞綾誨簲璇ユ彁渚涗粈涔堟牱鐨勬湇鍔″拰鎺ュ彛錛屼粬浠範(fàn)鎯笂灝唒ublic 綾誨瀷鐨勫嚱鏁板啓鍦ㄥ墠闈紝鑰屽皢private 綾誨瀷鐨勬暟鎹啓鍦ㄥ悗闈紝濡傝〃8.1(b)鎵紺恒?/p>
銆銆寰堝C++鏁欒涔︿富寮犲湪璁捐綾繪椂“浠ユ暟鎹負(fù)涓績”銆傛垜鍧氭寔騫朵笖寤鴻璇昏呭湪璁捐綾繪椂“浠ヨ涓轟負(fù)涓績”錛屽嵆棣栧厛鑰冭檻綾誨簲璇ユ彁渚涗粈涔堟牱鐨勫嚱鏁般侻icrosoft 鍏徃鐨凜OM 瑙勮寖鐨勬牳蹇冩槸鎺ュ彛璁捐錛孋OM 鐨勬帴鍙e氨鐩稿綋浜庣被鐨勫叕鏈夊嚱鏁癧Rogerson 1999]銆傚湪紼嬪簭璁捐鏂歸潰錛屽挶浠笉瑕佹鐤慚icrosoft 鍏徃鐨勯鏍箋?/p>
銆銆璁捐瀛ょ珛鐨勭被鏄瘮杈冨鏄撶殑錛岄毦鐨勬槸姝g‘璁捐鍩虹被鍙婂叾媧劇敓綾匯傚洜涓烘湁浜涚▼搴忓憳鎼炰笉娓呮“緇ф壙”錛圛nheritance錛夈?#8220;緇勫悎”錛圕omposition錛夈?#8220;澶氭?#8221;錛?Polymorphism錛夎繖浜涙蹇點?/p>
銆銆濡傛灉A 鏄熀綾伙紝B 鏄疉 鐨勬淳鐢熺被錛岄偅涔圔 灝嗙戶鎵緼 鐨勬暟鎹拰鍑芥暟銆傜ず渚嬬▼搴忓涓嬶細(xì)
class A
{
public:
void Func1(void);
void Func2(void);
};
class B : public A
{
public:
void Func3(void);
void Func4(void);
};
// Example
main()
{
B b; // B鐨勪竴涓璞?br />
b.Func1(); // B 浠嶢 緇ф壙浜嗗嚱鏁癋unc1
b.Func2(); // B 浠嶢 緇ф壙浜嗗嚱鏁癋unc2
b.Func3();
b.Func4();
}
銆銆榪欎釜綆鍗曠殑紺轟緥紼嬪簭璇存槑浜嗕竴涓簨瀹烇細(xì)C++鐨?#8220;緇ф壙”鐗規(guī)у彲浠ユ彁楂樼▼搴忕殑鍙鐢ㄦс傛鍥犱負(fù)“緇ф壙”澶湁鐢ㄣ佸お瀹規(guī)槗鐢紝鎵嶈闃叉涔辯敤“緇ф壙”銆傛垜浠緇?#8220;緇ф壙”绔嬩竴浜涗嬌鐢ㄨ鍒欙細(xì)
銆銆涓銆佸鏋滅被A 鍜岀被B 姣笉鐩稿叧錛屼笉鍙互涓轟簡浣緽 鐨勫姛鑳芥洿澶氫簺鑰岃B 緇ф壙A 鐨勫姛鑳姐?/p>
銆銆涓嶈瑙夊緱“涓嶅悆鐧戒笉鍚?#8221;錛岃涓涓ソ绔鐨勫仴澹潚騫存棤緙樻棤鏁呭湴鍚冧漢鍙傝ˉ韜綋銆?/p>
銆銆浜屻佸鏋滅被B 鏈夊繀瑕佷嬌鐢ˋ 鐨勫姛鑳斤紝鍒欒鍒嗕袱縐嶆儏鍐佃冭檻錛?/p>
銆銆錛?錛夎嫢鍦ㄩ昏緫涓夿 鏄疉 鐨?#8220;涓縐?#8221;錛坅 kind of 錛夛紝鍒欏厑璁窧 緇ф壙A 鐨勫姛鑳姐傚鐢蜂漢錛圡an錛夋槸浜猴紙Human錛夌殑涓縐嶏紝鐢峰錛圔oy錛夋槸鐢蜂漢鐨勪竴縐嶃傞偅涔堢被Man 鍙互浠庣被Human 媧劇敓錛岀被Boy 鍙互浠庣被Man 媧劇敓銆傜ず渚嬬▼搴忓涓嬶細(xì)
class Human
{
…
};
class Man : public Human
{
…
};
class Boy : public Man
{
…
};
銆銆錛?錛夎嫢鍦ㄩ昏緫涓夾 鏄疊 鐨?#8220;涓閮ㄥ垎”錛坅 part of錛夛紝鍒欎笉鍏佽B 緇ф壙A 鐨勫姛鑳斤紝鑰屾槸瑕佺敤A鍜屽叾瀹冧笢瑗跨粍鍚堝嚭B銆備緥濡傜溂錛圗ye錛夈侀薊錛圢ose錛夈佸彛錛圡outh錛夈佽籌紙Ear錛夋槸澶達(dá)紙Head錛夌殑涓閮ㄥ垎錛屾墍浠ョ被Head 搴旇鐢辯被Eye銆丯ose銆丮outh銆丒ar 緇勫悎鑰屾垚錛屼笉鏄淳鐢熻屾垚銆傜ず渚嬬▼搴忓涓嬶細(xì)
class Eye
{
public:
void Look(void);
};
class Nose
{
public:
void Smell(void);
};
class Mouth
{
public:
void Eat(void);
};
class Ear
{
public:
void Listen(void);
};
// 姝g‘鐨勮璁★紝鍐楅暱鐨勭▼搴?br />
class Head
{
public:
void Look(void) { m_eye.Look(); }
void Smell(void) { m_nose.Smell(); }
void Eat(void) { m_mouth.Eat(); }
void Listen(void) { m_ear.Listen(); }
private:
Eye m_eye;
Nose m_nose;
Mouth m_mouth;
Ear m_ear;
};
銆銆濡傛灉鍏佽Head 浠嶦ye銆丯ose銆丮outh銆丒ar 媧劇敓鑰屾垚錛岄偅涔圚ead 灝嗚嚜鍔ㄥ叿鏈塋ook銆丼mell銆丒at銆丩isten 榪欎簺鍔熻兘錛?/p>
// 閿欒鐨勮璁?br />
class Head : public Eye, public Nose, public Mouth, public Ear
{
};
銆銆涓婅堪紼嬪簭鍗佸垎綆鐭茍涓旇繍琛屾紜紝浣嗘槸榪欑璁捐鍗存槸閿欒鐨勩傚緢澶氱▼搴忓憳緇忎笉璧?#8220;緇ф壙”鐨勮鎯戣岀姱涓嬭璁¢敊璇?/p>
銆銆涓鍙叕楦′嬌鍔插湴榪芥墦涓鍙垰涓嬩簡铔嬬殑姣嶉浮錛屼綘鐭ラ亾涓轟粈涔堝悧錛?/p>
銆銆鍥犱負(fù)姣嶉浮涓嬩簡楦泲銆?/p>
銆銆鏈功3.3 鑺傝榪?#8220;榪愯姝g‘”鐨勭▼搴忎笉瑙佸緱灝辨槸楂樿川閲忕殑紼嬪簭錛屾澶勫氨鏄竴涓緥璇併?/p>
銆銆闄や簡緇ф壙澶栵紝C++鐨勫彟涓涓紭鑹壒鎬ф槸鏀寔澶氭侊紝鍗沖厑璁稿皢媧劇敓綾葷殑瀵硅薄褰撲綔鍩虹被鐨勫璞′嬌鐢ㄣ傚鏋淎 鏄熀綾伙紝B 鍜孋 鏄疉 鐨勬淳鐢熺被錛屽鎬佸嚱鏁癟est 鐨勫弬鏁版槸A 鐨?鎸囬拡銆傞偅涔圱est 鍑芥暟鍙互寮曠敤A銆丅銆丆 鐨勫璞°傜ず渚嬬▼搴忓涓嬶細(xì)
class A
{
public:
void Func1(void);
};
void Test(A *a)
{
a->Func1();
}
class B : public A
{
…
};
class C : public A
{
…
};
// Example
main()
{
A a;
B b;
C c;
Test(&a);
Test(&b);
Test(&c);
};
銆銆浠ヤ笂紼嬪簭鐪嬩笉鍑?#8220;澶氭?#8221;鏈変粈涔堜環(huán)鍊鹼紝鍔犱笂铏氬嚱鏁板拰鎶借薄鍩虹被鍚庯紝“澶氭?#8221;鐨勫▉鍔涘氨鏄劇ず鍑烘潵浜嗐?/p>
銆銆C++鐢ㄥ叧閿瓧virtual 鏉ュ0鏄庝竴涓嚱鏁頒負(fù)铏氬嚱鏁幫紝媧劇敓綾葷殑铏氬嚱鏁板皢錛坥verride錛夊熀綾誨搴旂殑铏氬嚱鏁扮殑鍔熻兘銆傜ず渚嬬▼搴忓涓嬶細(xì)
class A
{
public:
virtual void Func1(void){ cout<< “This is A::Func1 \n”}
};
void Test(A *a)
{
a->Func1();
}
class B : public A
{
public:
virtual void Func1(void){ cout<< “This is B::Func1 \n”}
};
class C : public A
{
public:
virtual void Func1(void){ cout<< “This is C::Func1 \n”}
};
// Example
main()
{
A a;
B b;
C c;
Test(&a); // 杈撳嚭This is A::Func1
Test(&b); // 杈撳嚭This is B::Func1
Test(&c); // 杈撳嚭This is C::Func1
};
銆銆濡傛灉鍩虹被A 瀹氫箟濡備笅錛?/p>
class A
{
public:
virtual void Func1(void)=0;
};
銆銆閭d箞鍑芥暟Func1 鍙綔綰櫄鍑芥暟錛屽惈鏈夌函铏氬嚱鏁扮殑綾誨彨浣滄娊璞″熀綾匯傛娊璞″熀綾誨彧綆″畾涔夌函铏氬嚱鏁扮殑褰㈠紡錛屽叿浣撶殑鍔熻兘鐢辨淳鐢熺被瀹炵幇銆?/p>
銆銆緇撳悎“鎶借薄鍩虹被”鍜?#8220;澶氭?#8221;鏈夊涓嬬獊鍑轟紭鐐癸細(xì)
銆銆錛?錛夊簲鐢ㄧ▼搴忎笉蹇呬負(fù)姣忎竴涓淳鐢熺被緙栧啓鍔熻兘璋冪敤錛屽彧闇瑕佸鎶借薄鍩虹被榪涜澶勭悊鍗沖彲銆傝繖涓
鎷涘彨“浠ヤ笉鍙樺簲涓囧彉”錛屽彲浠ュぇ澶ф彁楂樼▼搴忕殑鍙鐢ㄦэ紙榪欐槸鎺ュ彛璁捐鐨勫鐢紝鑰屼笉鏄唬鐮佸疄鐜扮殑澶嶇敤錛夈?/p>
銆銆錛?錛夋淳鐢熺被鐨勫姛鑳藉彲浠ヨ鍩虹被鎸囬拡寮曠敤錛岃繖鍙悜鍚庡吋瀹癸紝鍙互鎻愰珮紼嬪簭鐨勫彲鎵╁厖鎬у拰鍙淮鎶ゆс備互鍓嶅啓鐨勭▼搴忓彲浠ヨ灝嗘潵鍐欑殑紼嬪簭璋冪敤涓嶈凍涓哄錛屼絾鏄皢鏉ュ啓鐨勭▼搴忓彲浠ヨ浠ュ墠鍐欑殑紼嬪簭璋冪敤閭e彲浜嗕笉璧楓?/p>
銆銆鍦–++涓紝鎿嶄綔絎ew 鐢ㄤ簬鐢寵鍐呭瓨錛屾搷浣滅delete 鐢ㄤ簬閲婃斁鍐呭瓨銆傚湪C 璇█涓紝鍑芥暟malloc 鐢ㄤ簬鐢寵鍐呭瓨錛屽嚱鏁癴ree 鐢ㄤ簬閲婃斁鍐?瀛樸傜敱浜嶤++鍏煎C 璇█錛屾墍浠ew銆乨elete銆乵alloc銆乫ree 閮芥湁鍙兘涓璧蜂嬌鐢ㄣ俷ew 鑳芥瘮malloc 騫叉洿澶氱殑浜嬶紝瀹冨彲浠ョ敵璇峰璞$殑鍐呭瓨錛岃宮alloc 涓嶈兘銆侰++鍜孋 璇█涓殑鎸囬拡濞佺寷鏃犳瘮錛岀敤閿欎簡浼?xì)甯︽潵鐏鹃毦銆傚浜庝竴涓寚閽坧錛屽鏋滄槸鐢╪ew鐢寵鐨勫唴瀛橈紝鍒欏繀欏葷敤delete 鑰屼笉鑳界敤free 鏉ラ噴鏀俱傚鏋滄槸鐢╩alloc 鐢寵鐨勫唴瀛橈紝鍒欏繀欏葷敤free 鑰屼笉鑳界敤delete 鏉ラ噴鏀俱傚湪鐢╠elete 鎴栫敤free 閲婃斁p 鎵鎸囩殑鍐呭瓨鍚庯紝搴旇椹笂鏄懼紡鍦板皢p 緗負(fù)NULL錛屼互闃蹭笅嬈′嬌鐢╬ 鏃跺彂鐢熼敊璇傜ず渚嬬▼搴忓涓嬶細(xì)
void Test(void)
{
float *p;
p = new float[100];
if(p==NULL) return;
…// do something
delete p;
p=NULL; // 鑹ソ鐨勭紪紼嬮鏍?br />
// 鍙互緇х畫浣跨敤p
p = new float[500];
if(p==NULL) return;
…// do something else
delete p;
p=NULL;
}
銆銆鎴戜滑榪樿棰勯槻“閲庢寚閽?#8221;錛?#8220;閲庢寚閽?#8221;鏄寚鍚?#8220;鍨冨溇”鍐呭瓨鐨勬寚閽堬紝涓昏鎴愬洜鏈変袱縐嶏細(xì)
銆銆錛?錛夋寚閽堟病鏈夊垵濮嬪寲銆?br /> 銆銆錛?錛夋寚閽堟寚鍚戝凡緇忛噴鏀劇殑鍐呭瓨錛岃繖縐嶆儏鍐墊渶璁╀漢闃蹭笉鑳滈槻錛岀ず渚嬬▼搴忓涓嬶細(xì)
class A
{
public:
void Func(void){…}
};
void Test(void)
{
A *p;
{
A a;
p = &a; // 娉ㄦ剰a 鐨勭敓鍛芥湡
}
p->Func(); // p 鏄?#8220;閲庢寚閽?#8221;錛岀▼搴忓嚭閿?br />
}
2.4 浣跨敤const
銆銆鍦ㄥ畾涔変竴涓父閲忔椂錛宑onst 姣?define 鏇村姞鐏墊椿銆傜敤const 瀹氫箟鐨勫父閲忓惈鏈夋暟鎹被鍨嬶紝璇ュ父閲忓彲浠ュ弬涓庨昏緫榪愮畻銆備緥濡傦細(xì)
const int LENGTH = 100; // LENGTH 鏄痠nt 綾誨瀷
const float MAX=100; // MAX 鏄痜loat 綾誨瀷
#define LENGTH 100 // LENGTH 鏃犵被鍨?br />
#define MAX 100 // MAX 鏃犵被鍨?/p>
銆銆闄や簡鑳藉畾涔夊父閲忓錛宑onst 榪樻湁涓や釜“淇濇姢”鍔熻兘錛?/p>
銆銆涓銆佸己鍒朵繚鎶ゅ嚱鏁扮殑鍙傛暟鍊間笉鍙戠敓鍙樺寲
銆銆浠ヤ笅紼嬪簭涓紝鍑芥暟f 涓嶄細(xì)鏀瑰彉杈撳叆鍙傛暟name 鐨勫鹼紝浣嗘槸鍑芥暟g 鍜宧 閮芥湁鍙兘鏀瑰彉name鐨勫箋?/p>
void f(String s); // pass by value
void g(String &s); // pass by referance
void h(String *s); // pass by pointer
main()
{
String name=“Dog”;
f(name); // name 鐨勫間笉浼?xì)鏀瑰?br />
g(name); // name 鐨勫煎彲鑳芥敼鍙?br />
h(name); // name 鐨勫煎彲鑳芥敼鍙?br />
}
銆銆瀵逛簬涓涓嚱鏁拌岃█錛屽鏋滃叾‘&’鎴?#8216;*’綾誨瀷鐨勫弬鏁板彧浣滆緭鍏ョ敤錛屼笉浣滆緭鍑虹敤錛岄偅涔堝簲褰撳湪璇ュ弬鏁板墠鍔犱笂const錛屼互紜繚鍑芥暟鐨勪唬鐮佷笉浼?xì)鏀瑰彉璇ュ弬鏁扮殑鍊鹼紙濡傛灉鏀瑰彉浜嗚鍙傛暟鐨勫鹼紝緙栬瘧鍣ㄤ細(xì)鍑虹幇閿欒璀﹀憡錛夈傚洜姝や笂榪扮▼搴忎腑鐨勫嚱鏁癵 鍜宧 搴旇瀹氫箟鎴愶細(xì)
void g(const String &s);
void h(const String *s);
銆銆浜屻佸己鍒朵繚鎶ょ被鐨勬垚鍛樺嚱鏁頒笉鏀瑰彉浠諱綍鏁版嵁鎴愬憳鐨勫?/p>
銆銆浠ヤ笅紼嬪簭涓紝綾籹tack 鐨勬垚鍛樺嚱鏁癈ount 浠呯敤浜庤鏁幫紝涓轟簡紜繚Count 涓嶆敼鍙樼被涓殑浠諱綍鏁版嵁鎴愬憳鐨勫鹼紝搴斿皢鍑芥暟Count 瀹氫箟鎴恈onst 綾誨瀷銆?/p>
class Stack
{
public:
void push(int elem);
void pop(void);
int Count(void) const; // const 綾誨瀷鐨勫嚱鏁?br />
private:
int num;
int data[100];
};
int Stack::Count(void) const
{
++ num; // 緙栬瘧閿欒錛宯um 鍊煎彂鐢熷彉鍖?br />
pop(); // 緙栬瘧閿欒錛宲op 灝嗘敼鍙樻垚鍛樺彉閲忕殑鍊?br />
return num;
}
weblogic Server鍏佽閫氳繃璁劇疆weblogic搴旂敤紼嬪簭鎵╁睍鎻忚堪絎︼紙weblogic.xml錛夐厤緗甹sp瀹瑰櫒錛?br>璇ユ枃浠墮氬父浣嶄簬web搴旂敤紼嬪簭鐨剋eb-inf鐩綍涓嬨備竴鑸笉閫氳繃淇敼weblogic鏂囦歡鐩存帴閰嶇疆錛?br>鑰屾槸閫氳繃鎺у埗鍙伴厤緗鏂囦歡錛屽湪Deploments-->web Application-->defaultWebApp涓厤緗?br>鍙湪寮鍙戝拰鐢熶駭鐜涓厤緗笉鍚岀殑淇℃伅銆?br>涓昏閰嶇疆淇℃伅錛?br>compilerSupportsEncoding //true錛嶏紞鏀寔浣跨敤瀛楃闆?br>encoding //鎸囧畾jsp鏂囦歡鐨勯粯璁ゅ瓧絎﹂泦錛屽gb2312錛?br>vervose //鏄惁灝嗚皟璇曚俊鎭緭鍑哄埌嫻忚鍣ㄥ拰鏃ュ織錛?br>keepgenerated //鏄惁璁╃紪璇慾sp鏂囦歡浜х敓鐨?java鏂囦歡鎸佺畫瀛樺湪錛?br>Page Check Seconds //姝f暟錛嶏紞鍦ㄤ互縐掍負(fù)鍗曚綅鐨勬椂闂撮棿闅旀鏌sp鏂囦歡鏄惁鍙戠敓浜嗕慨鏀癸紝濡傛灉鏄垯閲嶆柊緙栬瘧錛?br> 0錛嶏紞鍦ㄦ瘡涓涓姹傛鏌sp;
-1錛嶏紞涓嶅jsp鏂囦歡榪涜媯鏌ャ?br>Precompile //true錛嶏紞鍦╳eblogic鏈嶅姟鍣ㄥ惎鍔ㄦ椂鑷姩緙栬瘧鎵鏈夌殑jsp銆?br>Debug Enable //true錛嶏紞鏄惁鍏佽璋冭瘯銆?br>
Weblogic .xml
private static final GlobalConfig INSTANCE=new GlobalConfig();
private GlobalConfig (){}//鏋勯犳柟娉?br>
}
闂鏄細(xì)褰撶涓嬈¤皟鐢ㄨ繖涓被鏃訛紝private static final GlobalConfig INSTANCE=new GlobalConfig(); 琚墽琛?錛岀劧鍚嶪NSTANCE鏄笉鏄氨涓鐩翠繚鐣欏湪鍐呭瓨涓紝涓嶄細(xì)琚玧ava鍨冨溇鍥炴敹錛?