C++学習(1)

1432 ワード

staticとconstの違い:
  • staticローカル変数関数のローカル変数として1つの変数を宣言すると、このローカル変数は関数の実行が完了した後も解放されず、メモリに
  • を保持し続ける.
  • staticグローバル変数は、現在のファイルのグローバル内で
  • にアクセスできる変数を表す.
  • static関数は、1つの関数が現在のファイルにのみアクセスできることを示す
  • .
  • staticクラスメンバー変数は、このメンバーが全クラスで共有されている
  • であることを示す.
  • staticクラスメンバー関数は、この関数がクラス全体で共有され、静的メンバー変数
  • にのみアクセスできることを示す.
  • const定数:定義時に初期化され、以降は変更できません.
  • constパラメータ:func(const int a){};このパラメータは関数の中で
  • を変えることができません
  • const修飾クラスメンバー関数:この関数はメンバー変数に対して読取り専用操作のみを行う
  • staticキーワードの役割:(1)関数内のstatic変数の役割範囲はこの関数体であり、この変数のメモリは一度しか割り当てられていないため、その値は次回の呼び出し時に前回の値を維持する.(2)モジュール内のstaticグローバル変数と関数はモジュール内の関数によってアクセスできるが、モジュール外の他の関数によってアクセスできない.(3)クラス内のstaticメンバー変数はクラス全体が所有し、クラスのすべてのオブジェクトに対して1部のコピーしかない.(4)クラス内のstaticメンバー関数はクラス全体が所有するものであり,この関数はthisポインタを受信しないため,クラスのstaticメンバー変数にのみアクセスできる.
    constキーワードの役割:(1)変数が変更されることを阻止する(2)定数ポインタとポインタ定数を宣言する(3)const修飾パラメータは、関数内部で値を変更できない入力パラメータであることを示す.(4)クラスのメンバー関数についてconstタイプとして指定すると、クラスのメンバー変数を変更できない定数関数であることを示します.(5)クラスのメンバー関数では、その戻り値が「左値」でないようにconstタイプとして指定する必要がある場合があります.
    プリプロセッサ#define ASPECT_RATIO 1.653をconst,enum,inlineで置換#define=寧可コンパイラで置換
    defineは言語の一部と見なされず、コンパイラに見られません.コンパイラがソースコードの処理を開始する前に、プリプロセッサに移動されます.記号名が記号表に入っていない可能性があり、この定数を用いてコンパイルエラー情報を取得すると、ASPECT_ではなく1.653に言及するため、困惑する可能性があります.RATIO.
    参考資料:
    https://www.cnblogs.com/Jinfe...