公司網(wǎng)站建站哪個(gè)系統(tǒng)好用網(wǎng)站建設(shè)seo優(yōu)化培訓(xùn)
專欄簡介:本專欄主要面向C++初學(xué)者,解釋C++的一些基本概念和基礎(chǔ)語言特性,涉及C++標(biāo)準(zhǔn)庫的用法,面向?qū)ο筇匦?#xff0c;泛型特性高級用法。通過使用標(biāo)準(zhǔn)庫中定義的抽象設(shè)施,使你更加適應(yīng)高級程序設(shè)計(jì)技術(shù)。希望對讀者有幫助!
目錄
4.6“成員訪問運(yùn)算符
點(diǎn)運(yùn)算符和箭頭運(yùn)算符都可用于訪問成員,其中,點(diǎn)運(yùn)算符獲取類對象的一個(gè)成員;箭頭運(yùn)算符與點(diǎn)運(yùn)算符有關(guān),表達(dá)式pt->mem等價(jià)于(*ptr).mem:
strtng s1="astring",*p=g&s1;
auto n=s1.size(); //運(yùn)行string對象s1的size成員
n = (*p).size(); //運(yùn)行p所指對象的size成員
p->size(); //等價(jià)于(*p).size()
因?yàn)榻庖眠\(yùn)算符的優(yōu)先級低于點(diǎn)運(yùn)算符,所以執(zhí)行解引用運(yùn)算的子表達(dá)式兩端必須加上括號。如果沒加括號,代碼的含義就大不相同了:
//運(yùn)行p的size成員,然后解引用size的結(jié)果
*p.size(); //錯(cuò)誤:p是一個(gè)指針,它沒有名為size的成員
這條表達(dá)式試圖訪問對象p的size成員,但是p本身是一個(gè)指針且不包含任何成員,所以上述語句無法通過編譯。
箭頭運(yùn)算符作用于一個(gè)指針類型的運(yùn)算對象,結(jié)果是一個(gè)左值。點(diǎn)運(yùn)算符分成兩種情況:如果成員所屬的對象是左值,那么結(jié)果是左值;反之,如果成員所屬的對象是右值,那么結(jié)果是右值。