課程
/后端開發(fā)
/C++
/C++遠(yuǎn)征之封裝篇(下)
const Coordinate coor(3, 5);
Coordinate *const p = &coor;??? // 創(chuàng)建常引用c?const Coordinate &c = coor;
2016-08-16
源自:C++遠(yuǎn)征之封裝篇(下) 5-6
正在回答
這是一種邏輯錯誤問題,常量指針的定義上可以改變其指向地址的數(shù)據(jù),僅表示它自身不能指向別的地方,而常量對象確實是說明對象數(shù)據(jù)不可變,所以在定義上就存在一種沖突,編譯器認(rèn)為這種行為不合理,所以編不過!
qq_蕞終灬聽風(fēng)者_(dá)0 提問者
一開始定義了一個常量對象,表明這個對象是不可變的,只能讀。而后面定義的是常量指針,只是表明這個常量指針地址不可變,不可以再指向其他對象,而他指向的對象的數(shù)據(jù)卻是可以改變的。與一開始的定義就產(chǎn)生了沖突,所以就錯了。個人理解,如有錯誤的地方還請指正!
舉報
封裝--面向?qū)ο笕筇卣髦?,通過案例讓C++所學(xué)知識融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-08-17
這是一種邏輯錯誤問題,常量指針的定義上可以改變其指向地址的數(shù)據(jù),僅表示它自身不能指向別的地方,而常量對象確實是說明對象數(shù)據(jù)不可變,所以在定義上就存在一種沖突,編譯器認(rèn)為這種行為不合理,所以編不過!
2016-08-16
一開始定義了一個常量對象,表明這個對象是不可變的,只能讀。而后面定義的是常量指針,只是表明這個常量指針地址不可變,不可以再指向其他對象,而他指向的對象的數(shù)據(jù)卻是可以改變的。與一開始的定義就產(chǎn)生了沖突,所以就錯了。個人理解,如有錯誤的地方還請指正!