でoccuringは名前の衝突ではありません。はなぜ構造体を作成した構造体宣言
その後int型の主に私が書く:
number_struct struct_a = { 0 };
number_struct struct_b = { 0 };
混乱が、私は二回struct_aを宣言しておりますので、私はそれが名前の衝突別名、2回宣言されていることを言って、視覚スタジオからのメッセージを期待するだろうということです。なぜこれは起こりませんか? struct_bを2回宣言しても、メインルーチン内で宣言すると発生します。このほかに
は、私は構造体を初期化せずに次の手順を実行している場合:
std::cout << struct_a.i << "\t" << struct_b.i << std::endl;
std::cout << struct_a.f << "\t" << struct_b.f << std::endl;
私はsturctは、初期化せずに使用されていることを言ってランタイムエラーを取得します。コンパイラが構造体(および標準型変数)を自動的に0に初期化しないのはなぜですか?
修正しました、int main(void)です。小さなC++プログラム。 – quantum231
これ以外にも:1つにつき1つ質問してください。 –
ここでは2つの異なる質問があるようです:なぜstruct_aを使用しても名前空間の衝突が2回起こらないのですが、なぜコンパイラが0を初期値として自動的に作成しないのでしょうか?明確にしていただけますか? –