Varsa, bir üye veri türü için yapı ve birleşim arasındaki farkı bilmek istiyorum.Sadece bir üyemiz varsa, yapı ve sendika arasında bir fark var mı?
cevap
C: Yok. Ünlü "yer kazandıran şaka" #define struct union
neredeyse bir şaka değil.
C++ 98'de: Sendikalar yalnızca POD members olabilir, sendikasız sınıfların rasgele üyeleri olabilir.
C++ 11'de: Sendikalar, nesne türüne (referans türü değil) rastgele veri üyelerine sahip olabilir, ancak bunların kullanımı, sendika dışı sınıfların kullanımının daha kısıtlı olduğunu gösterir. (Yani: Bir sendika, sanal üye fonksiyonlarına sahip olamaz, bir temel sınıf olamaz ve temel sınıflara sahip olamaz.) Ayrıca, tek kişilik bir sendika olmayan sınıfın aksine tek kişilik bir sendika çalışması yapmak için daha fazla kod yazmanız gerekir. çünkü kurucuları ve yıkıcıyı kendiniz yazmanız gerekiyor.
Bir uygulamada bir yapıda dolgu olmasına izin verilmiyor, ancak birleşim içinde değil midir? – mafso
@mafso: Ben öyle düşünmüyorum. Gördüğüm tek kısıtlama şudur: "Bir kaynağın boyutu, statik olmayan en büyük veri üyelerini içermesi için yeterlidir." –
Bir yapının ilk üyesi * öncesinde * dolguya izin verilmez ve hem birleşim hem de yapı için sonunda dolgu yapılabilir. Yani tek üye sendikaya göre yapıya göre hiçbir fark yoktur. –
- 1. System.Windows.Clipboard ve System.Windows.Forms.Clipboard arasında bir fark var mı?
- 2. /mnt/sdcard ve/sdcard arasında bir fark var mı?
- 3. Aşağıdakiler arasında herhangi bir fark var mı: window.localStorage ve localStorage?
- 4. Guice @provides ve bind() arasında bir fark var mı?
- 5. $ (e.currentTarget) ve $ (this) arasında bir fark var mı?
- 6. Arasında bir fark var mı? ve * cron ifadelerinde? Garip örnek
- 7. Javascript'te "this" ve "prototype" kullanımı arasında bir fark var mı?
- 8. gluLookAt() ve glFrustum() arasında bir fark var mı?
- 9. WPF TextBlock ve TextBox arasında bir fark var mı?
- 10. TParallel. & For ve TParallel.For arasında bir fark var mı?
- 11. Varyant() ve varyant arasında bir fark var mı?
- 12. - Bir fark var mı?
- 13. Normalde Express'te değişkenler arasında fark var mı?
- 14. LayoutInflater.from (context) ile context.getLayoutInflater() arasında bir fark var mı?
- 15. Parantez ile örnekleme veya olmadan arasında bir fark var mı?
- 16. c de 1U ile 1 arasında bir fark var mı?
- 17. Sendika için bir DRYer XPath ifadesi var mı?
- 18. BLOB'lar ve bağlı bileşenler arasında fark var mı?
- 19. 'And' ve 'AndAlso' ile linq'de linkalar arasında fark var mı?
- 20. Bir std :: ifstream ile, karakterleri göz ardı etmek ve aramak arasında bir fark var mı?
- 21. Qt ve ben bir yapı viz var
- 22. NSString karşılaştırması arasında bir fark var: ve isEqual (ToString) :?
- 23. Bir paket nesnesinde normal olarak bir sınıf bildirmek arasında herhangi bir önemli fark var mı?
- 24. $ ('. ClassName> button') ve $ ('. ClassName'). Children ('button') arasında bir fark var mı? jQuery yılında
- 25. Raylar: 'reference: foo' ve 'integer: foo_id' arasında bir fark var mı?
- 26. Varsa yapı alanını doğrulayın
- 27. Java 8 Sadece tek bir değer varsa
- 28. PHP array() ve [] arasında fark
- 29. "margin: 0 auto;" arasında bir fark var mı? ve "kenar boşluğu: otomatik;"
- 30. Specflow'un .msi yükleyicisi ve nuget paketi arasında bir fark var mı?
Google'da basit bir arama yaparak bunu kendiniz okuyabilirsiniz. –
@Begueradj: Belki, ama konu biraz incelikli, ve Google'ın bana attığı ilk şeylere güvenme eğiliminde olmayabilir. –
C++ ile ilgili ek tartışmalarla ilgili POD ve agregatlar ile ilgili olarak, bkz. [Agregatlar ve POD'lar nedir ve bunlar nasıl özeldir?] (Http://stackoverflow.com/questions/4178175/what-are-aggregates-and-pods -ve-nasıl-neden-onlar-özel) –