次に例を示します。
while (i < 10)
{
int j = 1;
string k = "hello.";
}
j はプリミティブ データ型で、k はオブジェクトです。Do built-in types have default constructors? によると、、
そのため、非クラス型 (基本型、配列型、参照型、ポインター型、および列挙型を含む) にはコンストラクターがありません。
Declaring Variables inside Loops によれば、良い習慣か悪い習慣か? (2人) ,
オブジェクト (std::string など) の場合は、反復ごとにコンストラクターとデストラクターを実行する必要があります。
ただし、while ループ内の変数宣言 C/C++は、
while(i--) { int i=100; // gets created every time the loop is entered i--; printf("%d..",i); } // the i in the loop keeps getting destroyed here
main()
関数が (オペレーティング システムなどによって) 呼び出されると、すべてのローカル変数が関数の開始時に作成され、関数の終了時に破棄されることを学びました。上記の while ループの引用は、プリミティブ データ型i
が while ループ ブロックで宣言されたときに作成され、各反復の while ループ ブロックの最後で破棄されることを示しています。
これは本当ですか?#1 while ループ ブロック内でプリミティブ データ型が宣言されており、while ループの反復ごとに割り当てられていますか。#2 while ループ内のこれらの宣言は、while ループ ブロックが含まれている関数の開始時に作成する必要があると仮定するのは間違っていますか?
はいまたはいいえだけでなく、詳細な説明を探しています。