锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
錛?錛夌浉鍚岀殑鑼冨洿錛堝湪鍚屼竴涓被涓級錛?
錛?錛夊嚱鏁板悕瀛楃浉鍚岋紱
錛?錛夊弬鏁頒笉鍚岋紱
錛?錛塿irtual 鍏抽敭瀛楀彲鏈夊彲鏃犮?
錛?錛変笉鍚岀殑鑼冨洿錛堝垎鍒綅浜庢淳鐢熺被涓庡熀綾伙級錛?
錛?錛夊嚱鏁板悕瀛楃浉鍚岋紱
錛?錛夊弬鏁扮浉鍚岋紱
錛?錛夊熀綾誨嚱鏁板繀欏繪湁virtual 鍏抽敭瀛椼?/p>
錛?錛夊鏋滄淳鐢熺被鐨勫嚱鏁頒笌鍩虹被鐨勫嚱鏁板悓鍚嶏紝浣嗘槸鍙傛暟涓嶅悓銆傛鏃訛紝涓嶈鏈夋棤virtual鍏抽敭瀛楋紝鍩虹被鐨勫嚱鏁板皢琚殣钘忥紙娉ㄦ剰鍒笌閲嶈澆娣鋒穯錛夈?
錛?錛夊鏋滄淳鐢熺被鐨勫嚱鏁頒笌鍩虹被鐨勫嚱鏁板悓鍚嶏紝騫朵笖鍙傛暟涔熺浉鍚岋紝浣嗘槸鍩虹被鍑芥暟娌℃湁virtual 鍏抽敭瀛椼傛鏃訛紝鍩虹被鐨勫嚱鏁拌闅愯棌錛堟敞鎰忓埆涓庤鐩栨販娣嗭級
璁頒綇,C++涓殑鍥涚嬈¤璦..
1.C. c鍩虹..
2.Object-Oriented C++ ,c++鐨勪富瑕?class ,綾誨皝瑁?緇ф壙,澶氭佺瓑.
3.Template C++ ..c++閲屽ご鐨勬硾鍨嬬紪紼?.妯℃澘緙栫▼.
4.STL.聽 鏍囧噯妯℃澘搴?.濡倂ector,queue,map絳?
榪欎釜鏉℃鎵鍙欒堪鐨?.搴斿綋鍦ㄦ璇█鍙樻崲鏃跺?楂樻晥緙栫▼瀹堝垯涔熼渶瑕佸仛鍑虹浉搴旂殑鏀瑰彉絳栫暐..渚嬪瓙:
聽聽聽 瀵瑰唴緗璞$被鍨嬭岃█..浣跨敤 鍊間紶閫?瑕佹瘮 寮曠敤浼犻捖?鏉ョ殑楂樻晥
聽聽聽 瀵逛簬鑷畾涔夌被鑰岃█, 甯稿紩鐢ㄤ紶閫掑線寰鏇村ソ..(const class& )
聽聽聽 STL 涓岃█.鍏舵槸鍦–鎸囬拡涔嬩笂濉戦?鍥犳.鍊間紶閫?涔熷啀嬈¢傜敤..
璋ㄨ: 瀵逛簬C++楂樻晥緙栫▼鍘熷垯搴斿綋瑙嗘儏鍐佃屽畾..鍙栧喅浣跨敤C++涓殑閭d竴閮ㄥ垎
璇瘋浣?
1.瀵逛簬鍗曠函甯擱噺,鏈濂戒互const瀵硅薄鎴杄nums 鏇挎崲鎺?#define..
濡?聽 const double PI = 3.141592653
class Test{
static const double PI;聽聽聽 //澹版槑寮?br />聽};const double Test::PI = 3.141592653;聽 //瀹氫箟寮?鍦ㄥ疄鐜版枃浠?
2. 瀵逛簬褰技鍑芥暟鐨勫畯..鏈濂芥敼鐢?inline 鍑芥暟鐨勫艦寮?鏇挎崲.
>
聽聽聽聽聽聽聽聽 璋ㄨ:
1.灝嗘煇浜涗笢瑗垮0鏄庝負const 鍙府鍔╃紪璇戝櫒渚︽祴閿欒鐢ㄦ硶. const 鍙鏂藉姞浜庝換浣曚綔鐢ㄥ煙鐨勫璞?鍑芥暟鍙傛暟.鍑芥暟榪斿洖綾誨瀷.鎴愬憳鍑芥暟鏈綋.
濡? 鍦–++閲屽父鐢ㄧ殑 const 寮曠敤浼犲?灝卞甯?const 鎸囬拡涓鏍?涓嶄互鍓嶅嚱鏁頒慨鏀瑰叾鍊?榪欏氨寰堝ソ鐨勪繚鎶や簡.鍙傛暟鐨勫間笉鑳借淇敼.
濡? 瀹氫箟鎴恈onst 鎴愬憳鍑芥暟,鍦ㄨ鎴愬憳鍑芥暟閲?鏄笉鍏佽淇敼鎴愬憳鍙橀噺鐨?鍥犳榪欐牱涓涓帴鍙e線寰鍙互鍚姩淇濇姢鏁版嵁鐨勪綔鐢?
const 寮曠敤浼犲兼椂鍊?鍙兘璋冪敤.const 鎴愬憳鍑芥暟...
const 榪斿洖鍊?寰寰浼氫綔涓烘帴鍙f椂鍊?浣垮緱榪斿洖鍊間笉鍏佽琚閮ㄤ慨鏀?鍥犳涔熸槸闈炲父鏈夌敤.
STL 褰撲腑鐨刬terator..聽 const vector<int>::Iterator 琛ㄧず int * const聽聽 鎸囬拡甯擱噺.
vector<int>::const_Iterator 鍗?const int *聽 甯擱噺鎸囬拡..
2. 緙栬瘧鍣ㄥ己鍒跺疄鏂?bitwise constness. 浣嗕嬌鐢ㄦ椂鍊?搴旀敞鎰忔槸姒傚康涓婄殑甯擱噺.
mutable 灝嗛噴鏀炬帀榪欑綰︽潫..鍗?榪欎箞瀹氫箟.聽聽 mutable int size;
鍏跺畾涔夌殑鍙橀噺鍏佽鍦╟onst 鎴愬憳鍑芥暟涓簣浠ヤ慨鏀?.
3.褰揷onst 鍜?non-const 鎴愬憳鍑芥暟 鍏鋒湁絳変環(huán)瀹炵幇鏃跺?,浠on-const 鍑芥暟 璋冪敤const 鍑芥暟 鍙伩鍏嶉噸澶?
涓轟粈涔堜笉const 璋冪敤 non-const ..鍘熷洜鍦ㄤ簬.const 闇瑕佷繚璇佷笉鍏佽淇敼鎴愬憳鍙橀噺. 鑰岃皟鐢╪on-const 鎴愬憳鍑芥暟.鍒欏瓨鍦ㄥ彲鑳藉凡緇忎慨鏀逛簡鎴愬憳鍙橀噺.鍥犳榪欐槸涓縐嶄笉姝g‘..
渚嬪瓙鍙叆涓嬫墍紺?
[const_cast<T&>]( static_cast<const T&>(*this) .function());聽聽 const_cast 瑙嗘儏鍐佃屽畾..濡傞渶瑕佽繑鍥炲煎幓鎺塩onst灞炴у垯灝遍渶瑕佷簡. static_cast<> 鍒欒繘琛屼竴嬈″己鍒惰漿鎹㈡垚const 寮曠敤..