C++のconstキーワード

4446 ワード

c++のconstキーワード
constはconstantの略で、本意は変わらず、変えにくいという意味です.
constの役割
1.const修飾普通型の変数
使用法:constタイプ説明子変数名
const int  a = 1; 

ここでaは定数として定義され、その値は他の変数に割り当てることができますが、aを二次的に割り当てることはできません.
int  b = a; //    a    b
a = 8;       //       ,    ,  a           ,        

2.修飾参照
使用法:constタイプ説明子&参照名
const int &c = 3; 

参照オブジェクトは変更できません.修飾参照には、次のような結論があります.
  • const int&cはconst int*const c,&cつまりcのアドレスに相当し、システム割り当てであり、それ自体は可変ではない
  • 一般参照はint*const c
  • に相当する
    3.修飾クラスオブジェクト
    使用法:クラス名constオブジェクト名const修飾クラスオブジェクトの場合、そのオブジェクトはconstメンバー関数にのみアクセスできます.
    4.修飾メンバー変数
    使用法:クラス名::constタイプ説明子変数名
    5.修飾メンバー関数
    使用法:クラス名::fun(パラメータ)const
    6.修飾配列
    使用法:タイプ説明子const配列名[]
    7.修飾ポインタ変数
    int a = 10;
    int b = 10;
    int * p = &a;
    
  • const修飾ポインタ----定数ポインタ
  • //    
    const int *p = &a;//const *    ,   
    
    *p = 20//  ,           
    p = &b;//  ,        
    

    定数ポインタの特徴:ポインタのポインタは変更できますが、ポインタの値は変更できません.
  • const修飾定数----ポインタ定数
  • //    
    int* const p = &a;
    
    
    *p = 2; //    ,       const   *    ,    
    p = &b;//  ,        
    

    ポインタ定数の特徴:ポインタの指向は変更できません.ポインタの指向の値は変更できます.
  • const修飾ポインタとポインタが指す内容、すなわち修飾ポインタは定数
  • を修飾する.
    const int * const  p = &a;//const p                    
    
    *p = 2; //    ,          
    p = &b;//  ,        
    

    特徴:ポインタの指向とポインタの指向の値は変更できません
    8.constパラメータ伝達
    使用法:fun(constタイプ説明子パラメータ名)
    9.修飾関数の戻り値
    使用法:const fun()戻り値操作を表示し、戻り値を変更しない