c++ 頂層const與底層const


     底層const是代表對象本身是一個常量(不可改變);

     頂層const是代表指針的值是一個常量,而指針的值(即對象的地址)的內容可以改變(指向的不可改變);

 1 #include <iostream>
 2 
 3 int main()
 4 {
 5     int i=0;
 6     int* const p1=&i;   //-----不能改變p1的值,這是一個頂層const
 7     const int b=i;      //-----不能改變b的值,這是一個頂層const(一般變量前const都是頂層const)
 8     const int* p2=&b;   //-----可以改變p2的值,這是一個底層const(對象是個const,所以可以底層指向頂層)
 9     const int*const p3=p2; //--靠右邊的是頂層const,靠左的事底層const;
10     const int& some=i;   //--- 用於聲明引用的,都是底層const;
11 }

    當執行對象的拷貝操作時,常量時頂層const還是底層const時就區別明顯,其中頂層const不受什么影響;

 

    底層const執行拷貝是2對象的類型必須一樣,或者可轉換,一般非常量可以轉換成常量;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM