私はC++プログラミングとプログラミング自体が新しく、C++コードのVisualスタジオコンパイラの予想される動作に精通しています。 (Visual Studioの2015) ローカル変数オブジェクトのVisual Studio C++コンパイラの奇妙な振る舞い
class aClass {
public:
int a;
int b;
}
次に、機能ブロックの内部、私はこのクラスのオブジェクトを宣言するとき:
aClass obj;
cout << obj.a;
その後、I文字通り1時間変数の値としてランダムなRAMの内容を取得し、それ以外のときはコンパイルエラーが発生します:ローカル変数は初期化されていません。 (コンパイラが一度エラーを克服したときに、それがエラーを克服し、初めて前にそれを繰り返して複数回を保つかもしれませんが、特に、それは、再びそれを繰り返したことがない!)
オブジェクトを宣言するのがベストプラクティス上の任意のアドバイスは、
一貫性のある結果を得るには、aClass obj = aClass();
のフォームを使用してください。
または関連性のある意見。前もって感謝します。
あなたのクラスには、メンバー変数を初期化するコンストラクタがありません。 –
実行時有効期間を持つ変数は、デフォルトでは初期化されません。 – George
_whileコンパイルエラーが発生する:ローカル変数が初期化されていません_正しく覚えていれば、エラーではなく警告です。 –