C/C++——const用法完整總結
一直以來都沒有總結const修飾符的用法,總是感覺const的用法太多,要記住的情況太多,不能夠掌握所有的情況,所以總是不了了之。但是如果沒有徹底掌握const用法的話,心裡總是感覺知識還欠缺很多,還要很多知識點沒有掌握。如果自己真正的總結完之後,其實也只有這麼多用法。
const修飾資料成員,成員函式,類物件。
- const修飾資料成員
修飾資料變數,保證資料變數只能在定義的時候進行初始化,並且在程式的執行過程中不能被再次賦值。
1、修飾類中的資料成員變數,可以直接在宣告的時候進行初始化(const int num = 100;),不過最好還是在建構函式的初始化列表中進行初始化(必須用初始化列表進行初始化)。
class A
{
public:
A(int val):num(val){ }
private:
const int num;//const成員變數
};
2、也可以在程式中定義const變數。const int num = 100;//比如在定義全域性const變數num=100;
3、const int num = 100;等價於int const num = 100;
也就是說const int 和int const意思相同。
- const修飾成員函式
1、const修飾成員函式的返回型別
class A
{
public:
A(int val):num(val){ }
const void fun(int val){
cout << "num = " << num << endl;
age = val;
}
private:
const int num;//const成員變數
int age;
};
此時const的位置有下面兩種等價的情況:
const void
fun
();
void const
fun
();
2、const修飾成員函式的形參變數
此時const的位置有下面兩種等價的情況:
void fun(const int val);
void fun(int const val);
3、const直接修飾成員函式
const放在函式宣告之後,函式實現之前。void fun(int val)const;
const此時保證不會修改該物件的資料成員。
下面的例子是錯誤的,因為fun是const成員函式,它不能修改物件的成員變數age;
void fun(int val)const{
cout << "num = " << num << endl;
age = val;//此時是錯誤的。
}
(1):const成員函式此時能訪問const和非const資料成員。但不能修改非const資料成員。
(2):const成員函式中只能呼叫其它const的成員函式。
(3):void fun(int val)const;和void fun(int val);兩個函式構成過載函式。
const物件只能呼叫const成員函式。
非const物件會優先呼叫非const成員函式,但是如果fun函式只有const函式,那麼非const物件也會呼叫const成員函式。(但是該非const成員函式中不能修改物件成員變數)
- const修飾類物件
定義一個const物件a:const A a(100);
const修飾函式,是從函式的層面,不修改資料。
const修飾類物件,是從物件的層面,不修改資料,只能呼叫const成員函式。
const物件只能呼叫const成員函式。
非const物件會優先呼叫非const成員函式,但是如果fun函式只有const函式,那麼非const物件也會呼叫const成員函式。(但是該非const成員函式中不能修改物件成員變數)
相關文章
- C++中const用法總結C++
- C/C++——static用法完整總結C++
- C++ const 總結C++
- Const 用法總結
- C++中const的用法C++
- 關於C++ const 的全面總結C++
- C++中const的簡單用法C++
- C++中const與指標、引用的總結C++指標
- C++中const小結C++
- C++ sort排序函式的用法總結C++排序函式
- C/C++const用法C++
- C++ const int * ; int * constC++
- C/C++中的constC++
- 標準 C++ 中的 string 類的用法總結C++
- 【C++】 C++知識點總結C++
- c++基礎知識(八)C/C++中修飾符const、extern、static、volatile的用法C++
- C++:字串總結C++字串
- C++基礎 constC++
- C/C++ Const 小知識C++
- c/c++ const關鍵字C++
- C/C++指標總結C++指標
- C++除錯總結C++除錯
- c++學習總結C++
- 【C++泛讀總結】C++
- C++ STL容器總結C++
- C++中const的妙用C++
- C++ const常量的理解C++
- 關於C/C++ const變數 const指標 以及C++ 引用變數的解析C++變數指標
- C++語言中std::array的神奇用法總結,你需要知道!C++
- c++const的各種用法C++
- C++ 指標常見用法小結C++指標
- C/C++中Static和Const的作用C++
- C++設計模式 - 總結C++設計模式
- 面試總結(C++基礎)面試C++
- C++ 14 新特性總結C++
- c++方法後面加constC++
- c++ const 成員函式C++函式
- C++之const限定符C++