C++primerエッセイ(2)(変数と基本タイプ)

3727 ワード

変数と基本タイプ
C++は2種類の初期化方式をサポートする:レプリケーション初期化(=)直接初期化(初期化式は括弧に入れる)
int val=1024;//     
int val(1024);//     

同時に、直接初期化は、複数回の初期化を繰り返す方法を提供します(配列初期化に適しており、サイクル付与初期化を使用する必要はありません).
std:string all_nines(10,'9');//all_nines="9999999999"

レプリケーション初期化の"="はレプリケーションの形式ではなく、C++ではレプリケーション初期化と付与の2つの異なる操作であることに注意してください.初期化の重要性初期化されていない変数は、実行上の問題を引き起こすことが多いため、変数を使用するときの初期化が重要です.しかし、stringクラスなどの変数を明示的に初期化する必要がないデフォルトの構造関数を提供するクラスもあります.
std::string empty;//       empty     

キーワードextern宣言の宣言と定義は定義ではなく、ストレージスペースも割り当てられません.この変数定義は、プログラムの他の場所でよく使用され、複数のファイルが共同でコンパイルされる場合によく使用され、1つのファイルが別のファイルで定義された変数を使用する場合に使用されることを示します.
変数名の役割ドメイン
#include
int glb=0int main()
{
   int sum=0;
   for(int val=1;val<=10;++val)
    {
      sum+=val;
    }
}

ここでsum役割ドメインはmain関数全体であり,局所変数である.glbはグローバル変数であり、役割ドメインはプログラム全体である.通常、変数val定義はfor文の役割ドメインでのみ使用され、その役割ドメインは文の役割ドメインと呼ばれています.最良の経験は、オブジェクトを最初に使用した場所に定義するのが良い方法です.
クラスタイプ
class Sales_item{
public:

private:

};

クラス定義後のセミコロンは、よくあるエラークラスのpublic定義のメンバーがプログラムのどこにでもアクセスできることを忘れがちです.クラスのコンポーネントではないコードはprivateメンバーにアクセスできません.C言語のstructのすべてのメンバーはpublic型です.名前の競合を回避するために、プリプロセッサ変数(defineで定義された変数など)は、常に大文字で表されます.