const用法まとめ

1964 ワード

constの概要
constとは、CとC++の共通キーワードを使用します.C言語では、主に変数が通常のタイプと修飾パラメータと戻り値を定義するために使用されますが、C++では、関数の定義、クラスのメンバー関数の定義を修飾することもできます.通常型の変数やオブジェクトの値は更新できません.
一般的にconstには以下の特徴があります.
  • 1、const定数を定義し、変形不可能である.例:
  • const int MAX = 100;
    int array[MAX];
    
  • 2、タイプチェックを行い、コンパイラに内容をもっと理解させ、いくつかの隠れた危険を解消した.たとえば、void f(const int i){...}コンパイラは、iが定数であることを認識し、変更は許可されません.
  • 3、関数のリロードに参考を提供します.
  • class A
    {
        void f(int i){};
        void f(int i)const {};
    };
    
  • 4、省スペース.const定義定数はアセンブリの観点から、#defineのように即時数ではなく、対応するメモリアドレスが与えられるだけであるため、const定義定数は実行中にコピーが1部しかなく、#define定義定数はメモリにいくつかのコピーがある.
  • 5、プロバイダ効率.コンパイラは、通常、通常のconst定数にストレージスペースを割り当てるのではなく、シンボルテーブルに保存します.これにより、コンパイル中の定数と呼ばれ、ストレージとリードメモリの操作がなくなります.それらの効率を高めます.

  • 引用:constキーワードはどんな場合に使いますか.
  • 1、修飾一般定数、例えば
  • int const x = 2; 
    const int x = 2;
    
  • 2、修飾常配列.
  • などの定数配列を定義または説明する
    int const a[8] = {0, 1, 2, 3, 4, 5, 6, 7};
    const int a[8] = {0, 1, 2, 3, 4, 5, 6, 7}q;
    
  • 3、修飾常オブジェクト
  • class A;
    const A a;
    A const a;
    
  • 4、修飾常針.
  • const int * A;//const      
    int const * A;//const      
    int * const A;//const    
    const int * const A;//const         
    
  • 5、修飾常参照は、この別名で変数値を変更できないことを示す.通常の参照は右値にバインドできます.
  • int x = 10;
    const double& cdr = 1.0;
    const int& y = x;
    
  • 6、修飾関数の定数.
  • void fun(const int i);
    
  • 7、修飾コンパイラの戻り値.戻り値が変更できないことを示します.
  • const int fun();
    const Myclass fun2();
    
  • 8、修飾クラスメンバー関数.呼び出し時に、クラスオブジェクトメンバーの非静的メンバー変数の値を変更することはできません.thiscall関数呼び出し方式を採用しているため、静的関数(呼び出し規則は__cdeclまたは__stdcall)は修飾できません.関数呼び出しについては、C++の関数の呼び出し方式
  • を参照することができる.
    class ClassName
    {
    public:
        int fun() const;
    };
    
  • 9、別のファイルでconst変数を参照します.変数は別のファイルで再初期化できません.
  • extern const int i;