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