İyi uygulama (bu arada sıfırlamak sahip, iki farklı semantik anlamları için aynı değişkeni kullanarak) yapısının bu tür kaçınmaktır. Siz (veya başka biri) kodunuzu değiştirdiğinizde ve iki farklı kullanım için bir değişken paylaştığınızı unuttuğunuzda, kaçınılmaz olarak garip bir hata oluşturacaktır.
tek geçerli ancak bazı bellek alanını yedek olacaktır:
- Gerçekte böyle bir optimizasyona ihtiyaç duyduğunu çok düşüktür.
- Bunu yapsanız bile, derleyici genellikle yığındaki bir değişkenin artık kullanılmadığını ve atılabileceğini anlar, böylece oluşturduğunuz yeni değişken ilkini etkili bir şekilde değiştirir. Hafızayı kendiniz korumayı önemsemeye gerek yok.
- Değişkenleriniz yığındaysa, yalnızca iki farklı işaretçiyi kullanmanız daha iyi olur.
Ancak bu sıfırlamayı gerçekten yapmak istiyorsanız, bunu yapmak için bir yöntem yazmanız gerekir. C++ 'da yerleşik bir yol yoktur, çünkü aslında destructor
ve daha sonra constructor
numaralı telefonu çağırmayı gerektirir.
my_struct = Part()
numaralı çözüm, yalnızca destructor
numaralı ürününüz önemsiz olduğunda çalışır. std::vector
numaranızda işaretçi atadığınızı varsayalım, vector
'u boşaltmadan önce her işaretçiyi delete
düzgün bir şekilde işaretlemelisiniz. Bu yüzden otomatik olarak yapılamaz: yapının temizlenmesi, basit unutmadan ziyade özel bir tedavi gerektirebilir.
Bu typedef C'den bir eserdir, burada pek bir şey yapmaz. Ayrıca sadece üyeleri kendi içinde sıfırlayın ya da bunu yapmak için bir yöntem yazın. – Rapptz
Teşekkürler, bunu bilmiyordum. – user2117427
Jeez, herkes neden bu kadar aşağı çekilmekten mutlu oluyor? Bunu 0'a geri alıyorum –