const在函数后面是什么意思? 一个函数名后面加const表示什么意思??

c++\u3000\u5728\u51fd\u6570\u540e\u52a0const\u662f\u4ec0\u4e48\u610f\u601d\uff1f

const\u662f\u4e00\u4e2aC\u8bed\u8a00\u7684\u5173\u952e\u5b57\uff0c\u5b83\u9650\u5b9a\u4e00\u4e2a\u53d8\u91cf\u4e0d\u5141\u8bb8\u88ab\u6539\u53d8\u3002\u4f7f\u7528const\u5728\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u53ef\u4ee5\u63d0\u9ad8\u7a0b\u5e8f\u7684\u5b89\u5168\u6027\u548c\u53ef\u9760\u6027\uff0c\u53e6\u5916\uff0c\u5728\u89c2\u770b\u522b\u4eba\u4ee3\u7801\u7684\u65f6\u5019\uff0c\u6e05\u6670\u7406\u89e3const\u6240\u8d77\u7684\u4f5c\u7528\uff0c\u5bf9\u7406\u89e3\u5bf9\u65b9\u7684\u7a0b\u5e8f\u4e5f\u6709\u4e00\u4e9b\u5e2e\u52a9\u3002

\u3000\u3000\u8fd9\u662f\u628a\u6574\u4e2a\u51fd\u6570\u4fee\u9970\u4e3aconst\uff0c\u610f\u601d\u662f\u201c\u51fd\u6570\u4f53\u5185\u4e0d\u80fd\u5bf9\u6210\u5458\u6570\u636e\u505a\u4efb\u4f55\u6539\u52a8\u201d\u3002\u5982\u679c\u4f60\u58f0\u660e\u8fd9\u4e2a\u7c7b\u7684\u4e00\u4e2aconst\u5b9e\u4f8b\uff0c\u90a3\u4e48\u5b83\u5c31\u53ea\u80fd\u8c03\u7528\u6709const\u4fee\u9970\u7684\u51fd\u6570\u3002
\u3000\u3000\u5982\uff1a
class Text{ public: void printconst(void)const{cout<<"hello"<<endl;} void print(void){cout<<"hello"<<endl;} private: int k; }; const Text a; //\u4e0a\u9762\u5b9a\u4e49\u4e86\u7c7bText\u7684\u4e00\u5e38\u91cf\u5bf9\u8c61 int main(void) { a.printconst(); //ok a.print(); //error //\u4e0a\u9762a.print()\u8c03\u7528\u662f\u975e\u6cd5\u7684 return 0; } const\u5bf9\u8c61\u53ea\u80fd\u8c03\u7528const\u6210\u5458\u51fd\u6570\u3002 const\u5bf9\u8c61\u7684\u503c\u4e0d\u80fd\u88ab\u4fee\u6539\uff0c\u5728const\u6210\u5458\u51fd\u6570\u4e2d\u4fee\u6539const\u5bf9\u8c61\u6570\u636e\u6210\u5458\u7684\u503c\u662f\u8bed\u6cd5\u9519\u8bef \u3002 \u5728const\u51fd\u6570\u4e2d\u8c03\u7528\u975econst\u6210\u5458\u51fd\u6570\u662f\u8bed\u6cd5\u9519\u8bef

  1. const就是说这个函数操作不会对变量或是对象之类的值有影响 比如你有一个human类 你现在要得到某个human类对象A的age 那么肯定是不会因为你想得到这个值而改变了age的大小 对吧 那么你就可以写一个函数int getAge()const这样就好 这么做是为了防止你在函数中对不应该在这里改变的量不小心进行了改变。这样的函数叫常成员函数。常成员函数可以理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成员函数。

  2. const修饰说明它是一个常量,它的值是不能被修改的。没有什么地方是必须要用的,你只要觉得这个数字你不会改变就可以用。一般在函数传递参数中用的比较多,你可以看看C语言的库函数参数中很多都是用const修饰的。
    比如字符串拷贝的声明函数char *strcpy(char *dest,const char *src); 后边的形参用了const修饰,在函数定义中src的值就不能被改变,dest的值就可以被改变,也是一种提示的作用说明字符串是从src拷贝到dest中



表示在这个函数体内不能修改参数的值,只能读取,你若参数赋值,则编译通不过,实际调用时实参的值不变,

一般这样的函数是在类里面定义的
表示这个函数不改变类的成员变量
如果改变了就会出现编译错误

表示此函数为只读函数!

  • const(涓):(杞) 涓涓鍑芥暟鍚鍚庨潰鍔燾onst琛ㄧず浠涔堟剰鎬
    绛旓細甯告垚鍛樺嚱鏁 浣跨敤const鍏抽敭瀛楄繘琛岃鏄庣殑鎴愬憳鍑芥暟锛岀О涓哄父鎴愬憳鍑芥暟銆傚彧鏈夊父鎴愬憳鍑芥暟鎵嶆湁璧勬牸鎿嶄綔甯搁噺鎴栧父瀵硅薄锛屾病鏈変娇鐢╟onst鍏抽敭瀛楄鏄庣殑鎴愬憳鍑芥暟涓嶈兘鐢ㄦ潵鎿嶄綔甯稿璞°傚父鎴愬憳鍑芥暟璇存槑鏍煎紡濡備笅锛 <绫诲瀷璇存槑绗> <鍑芥暟鍚> (<鍙傛暟琛>) const锛 鍏朵腑锛const鏄鍔鍦ㄥ嚱鏁璇存槑鍚庨潰鐨勭被鍨嬩慨楗扮锛屽畠鏄嚱鏁扮被鍨嬬殑涓...
  • C++涓被鐨勬湁浜涙垚鍛鍑芥暟澹版槑鏃朵负浠涔堝湪鍚庨潰鍔犱笂const
    绛旓細绫荤殑鎴愬憳鍑芥暟澹版槑鐨鍚庨潰鍔犱簡const锛屾槸琛ㄧず鍦ㄨ繖涓垚鍛樺嚱鏁伴噷涓嶄細淇敼绫荤殑鎴愬憳鍙橀噺鐨勫笺傝繕鏈夛紝const鍑芥暟閲岄潰搴旇鍙兘璋冪敤鏈被鐨刢onst鍑芥暟锛堝彲浠ユ兂鍑轰负浠涔鐨勶級銆傝绫荤殑const鐨勫璞★紝鍙兘璋冪敤瀹冪殑const鍑芥暟锛堜篃鍙互鎯虫槑鐧戒负浠涔堢殑锛夈
  • 鍦–/C++浠g爜涓,鍑芥暟澹版槑鎷彿鏈鍚鐨刢onst鏄粈涔堟剰鎬,鏈変粈涔堢敤?
    绛旓細濡傛灉璇鍑芥暟鏄涓涓被鐨勬垚鍛樺嚱鏁帮紝鍒欒〃绀烘垚鍛樺嚱鏁伴殣鍚紶鍏ョ殑this鎸囬拡涓篶onst鎸囬拡锛堝嵆鎸囬拡鐨勫间笉鑳戒慨鏀癸紒锛夛紝鍐冲畾浜嗗湪璇ユ垚鍛樺嚱鏁颁腑锛屼换鎰忎慨鏀瑰畠鎵鍦ㄧ殑绫荤殑鎴愬憳鐨勬搷浣滈兘鏄笉鍏佽鐨勶紙鍥犱负闅愬惈浜嗗this鎸囬拡鐨刢onst寮曠敤锛夈
  • c璇█闂,杩欎簺鍑芥暟鍚庤竟璺熶釜const 鍟ユ剰鎬 姹傝В
    绛旓細const 闄愬畾绗︼紝瀹冩妸涓涓璞¤浆鎹㈡垚涓涓父閲忋1.銆嬨媍onst涓巇efine銆備袱鑰呴兘鍙互鐢ㄦ潵瀹氫箟甯搁噺锛屼絾鏄痗onst瀹氫箟鏃讹紝瀹氫箟浜嗗父閲忕殑绫诲瀷锛屾墍浠ユ洿绮剧‘涓浜涖#define鍙槸绠鍗曠殑鏂囨湰鏇挎崲锛岄櫎浜嗗彲浠ュ畾涔夊父閲忓锛岃繕鍙互鐢ㄦ潵瀹氫箟涓浜涚畝鍗曠殑鍑芥暟锛屾湁鐐圭被浼煎唴鑱斿嚱鏁(Inline)銆俢onst鍜宒efine瀹氫箟鐨勫父閲忓彲浠鏀惧湪澶存枃浠堕噷闈傦紙...
  • const淇グ鎴愬憳鍑芥暟鐨勭洰鐨?
    绛旓細绫荤殑鎴愬憳鍑芥暟鍚庨潰鍔const锛岃〃鏄庤繖涓嚱鏁颁笉浼氬杩欎釜绫诲璞$殑鏁版嵁鎴愬憳锛堥潪闈欐佹暟鎹垚鍛橈級浣滀换浣曟敼鍙樸 甯稿嚱鏁帮細 鎴愬憳鍑芥暟鍚庡姞const鍚庣О涓哄父鍑芥暟锛涘父鍑芥暟涓嶅彲浠ヤ慨鏀规垚鍛樺睘鎬э紱鎴愬憳灞炴у0鏄庢椂鍔犲叧閿瓧mutable鍚庯紝渚濈劧鍙互淇敼銆 甯稿璞★細 澹版槑瀵硅薄鍓嶅姞const锛涘父瀵硅薄鍙兘璋冪敤甯稿嚱鏁般傞《灞俢onst涓嶅彲浠...
  • c++,杩欎釜鎴愬憳鍑芥暟鍚庨潰鍔const鏄粈涔堟剰鎬?
    绛旓細const鎴愬憳鍑芥暟琛ㄧず璇ュ嚱鏁颁笉浼氫慨鏀逛换浣曠被鎴愬憳鍙橀噺鐨勫笺
  • Point getCircum() const 閲鐨刢onst鍔鍦ㄥ嚱鏁板悗闈㈡槸浠涔浣滅敤?
    绛旓細const 淇グ鐨勬垚鍛樺嚱鏁帮紝瀵规暟鎹垚鍛樺垯鏄彲璇诲彲鍐欑殑銆傚湪绫荤殑鎴愬憳鍑芥暟鍚庨潰鍔 const ,鍒欏父閲忥紙鍗 const锛夊璞″彲浠ヨ皟鐢 const 鎴愬憳鍑芥暟锛岃屼笉鑳借皟鐢ㄩ潪const淇グ鐨勫嚱鏁般傛濡傞潪const绫诲瀷鐨勬暟鎹彲浠ョ粰const绫诲瀷鐨勫彉閲忚祴鍊间竴鏍凤紝鍙嶄箣鍒欎笉鎴愮珛銆傚浜巆onst鎴愬憳鍑芥暟锛"涓嶈兘淇敼绫荤殑鏁版嵁鎴愬憳锛屼笉鑳鍦ㄥ嚱鏁涓皟鐢ㄥ叾浠栦笉...
  • 绾櫄鍑芥暟浣滄娊璞$被,鍚庨潰鍔犱笂涓涓const鏈浠涔浣滅敤,鏈涜В绛旂殑璇︾粏涓鐐筥鐧 ...
    绛旓細const鍏抽敭瀛楃敤鍦ㄥ嚱鏁涓婏紝璇存槑杩欎釜鍑芥暟涓嶈兘淇敼绫荤殑鎴愬憳鍙橀噺銆傝繖涓敤娉曚竴鑸锛歝lass BaseGraph 锝 public:virtual int GetArea() const =0;锝 class DerivedGraph :BaseGraph { ...} 鍦ㄨ繖閲岋紝GetArea()鍙湁鍦ㄥ悇涓淳鐢熺被鎵嶆湁鏁(鍩虹被鍏跺疄灏辨槸瀹氫箟涓涓帴鍙e嚱鏁),鑰岃繖涓鍑芥暟鍚庨潰鍔燾onst闄愬畾闄愬畾杩欎釜鍑芥暟鏄...
  • c++ 浠涔鏃跺欏緱鍦ㄥ嚱鏁板悗闈鍔const
    绛旓細鍑芥暟鍚庨潰鍔燾onst鍏抽敭瀛楋紝杩欏憡璇夌紪璇戝櫒锛岃鍑芥暟涓嶄細鏀瑰彉鎴愬憳鍙橀噺鐨勫硷紙鍥犱负鏄垚鍛樺彉閲忥紝鎵浠ュ彧鏈夌被鎴栫粨鏋勪綋鐨勬垚鍛樺嚱鏁版墠鑳藉姞const鍑芥暟锛夈備篃璁╅槄璇讳唬鐮佺殑浜轰竴鐪肩湅灏辩煡閬撹繖涓嚱鏁颁笉浼氭敼鍙樻垚鍛樼殑鍊硷紝鏈夊埄浜庝唬鐮佸彲璇绘с備竴鑸儏鍐典笅锛屽嚱鏁颁笉鏀瑰彉鎴愬憳鍙橀噺鐨勫硷紝涔熷彲浠ヤ笉鍔燾onst锛屼絾鏄湪鏌愪簺鎯呭喌涓嬪繀椤诲姞锛屾瘮濡傦細...
  • c++涓瑿onst 鐢ㄦ硶?浠涔鏃跺欓渶瑕佺敤const? Const鏀惧湪绫绘垚鍛鍑芥暟鍚鏈...
    绛旓細2銆佸弬鏁颁娇鐢const淇グ锛岃繖绉嶇敤娉曟槸琛ㄦ槑骞堕槻姝㈠嚱鏁板唴閮ㄤ慨鏀逛簡鍏ュ弬锛屼竴鑸敤鍦ㄥ紩鐢ㄥ弬鏁板拰鎸囬拡鍙傛暟銆傝皟鐢ㄨ呬笉鐢ㄦ媴蹇冨叆鍙傝淇敼锛屽嚱鏁板疄鐜拌呬篃鏃犳硶淇敼璇ュ叆鍙傘3銆佹垚鍛鍑芥暟鍚庨潰浣跨敤const淇グ锛岃繖绉嶇敤娉曡〃鏄庡苟闃叉鍑芥暟鍐呴儴淇敼鎴愬憳鍙橀噺锛屽嵆纭繚璇ュ嚱鏁颁笉浼氫慨鏀瑰唴閮ㄦ暟鎹垚鍛橈紝浠呬綔涓洪潪鏁版嵁鐩稿叧鐨勬柟娉曘4銆佸嚱鏁拌繑鍥炲...
  • 扩展阅读:const关键字及其作用 用法 ... 函数后加const有什么用 ... const放在函数后面 ... 函数括号后面的const ... c++函数后面的const作用 ... 函数名后面的const ... 成员函数后面加const ... const在c++中的用法 ... const在函数前与函数后的区别 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网