亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2603 | 回復: 1
打印 上一主題 下一主題

[C++] "常量正確"(const-correct)是個C++編程的概念嗎? [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-11-06 19:54 |只看該作者 |倒序瀏覽
我看到<<com本質論>>這本書里面介紹"墊片類"shim class的概念時說道:
"大部分com api并不是常量正確的(const-correct)"

請問所謂的const-correct是個C++的概念? 還是某種設計模式里面的概念呢?

論壇徽章:
17
處女座
日期:2013-08-27 09:59:352015亞冠之柏太陽神
日期:2015-07-30 10:16:402015亞冠之薩濟拖拉機
日期:2015-07-29 18:58:182015年亞洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥豬
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56雙子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
2 [報告]
發(fā)表于 2013-11-06 20:58 |只看該作者
回復 1# sampher

這主要是個C/C++的概念,廣義的說就是在合適的地方應該使用const,比如說定義一個字符串指針const char * str="hello";此處使用const是必然的,因為這個字符串指針指向的內容必然不可更改,再比如說函數(shù)參數(shù),int compare(const char* a,const char* b);在函數(shù)中不存在對參數(shù)內容的更改所以應該使用const修飾,這樣所有潛在的修改了不應該修改的內容的錯誤都會提前到編譯期發(fā)現(xiàn)。常量正確更具體的是個編譯期問題,而不是運行期問題。這個問題到了C++中又更深入一層,可以對class的方法進行限定,比如說某個類Test有方法:int get() const;這表示這個方法不會修改對象本身的內容,當對象是const對象時可以調用這個方法,比如說const Test& a;此時a.get()調用的是沒有問題的,如果get方法沒有const修飾將不能進行調用,由于const是編譯期問題所以一定要注意總是可以通過類型轉換繞過這個限止。const用作函數(shù)或方法參數(shù)時其有更深一層的意義,它可以完成對rvalue值的匹配,由于lvalue總是可以轉換到rvalue(絕大多數(shù)情況下是隱式轉換),所以參數(shù)為const類型的函數(shù)或方法適應性更強,比如說定義copy構造函數(shù),操作符重載以及自定義轉換等場景下都應該使用const引用作為參數(shù)?傊A空_是具有多方面含義的,既有聲明和定義對象時readonly的表示,也有rvalue的適配。
   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP