Değişkenler karşı
for(int i=0;i<10;i++)
{
int n = getNumber();
printf("%d\n",n);
}
gerçekten "oluşturulmuş" veya "yok" değildir. Programlama dilinin soyutlama düzeyinde kavramlardır. Derleyicinin bir değişken ve bellek adresleri arasında bire bir eşleştirmeye sahip olması gerekmez. Pratikte, çoğu zaman, yerel değişkenler için yığın alanı, işlevin başında bir defada tahsis edilir, bu yüzden performansta bir fark yaratmayacaktır.
Kurucular için bir fikri olmayan C'den farklı olarak C++, nesne yapısını ve yıkımını desteklediğini unutmayın, bu nedenle aşağıdaki gibi bir for döngüsünde bir sınıf türünde bir değişken tanımlamanız gerekiyordu,
class MyClass {
public: MyClass() { cout << "hello world" << endl; }
};
//...
for (int i = 0; i < 10; ++i) {
MyClass m;
}
Yapımcıyı her seferinde, her seferinde "merhaba dünya" yı on kez basmak için çağırırsınız. Bu C bildirimlerinden çok farklıdır ve bununla karıştırılmamalıdır.
Teşekkürler, her yinelemede yeniden ayrılan bellek kastediyorum. Soruyu değiştirdim. –