Bir oyun yapıyorum ve Man
isimli bir dersim var ve her ikisi de birbirlerine ihtiyaç duyan kodlarında Block
adında bir sınıf var, ancak ayrı dosyalardalar. Bir sınıfı "önceden tanımlamak" için bir yol var mı? Objective-C'nin @ class makrosu gibi mi?C++: Birbirine ihtiyaç duyan iki sınıf
cevap
Dairesel bağımlılık denir. sınıfta Two.h
class One;
class Two {
public:
One* oneRef;
};
Ve sınıfta One.h
class Two;
class One {
public:
Two* twoRef;
};
"sınıfı Tek;" ve "sınıf iki;" direktifler sırasıyla bir "Bir" ve "İki" isimleri tahsis eder; ama ismin ötesinde başka hiçbir ayrıntı tanımlamazlar. Bu nedenle işaretçiler sınıf oluşturmak, ancak bütün sınıf şöyle içeremez:
class One;
class Two : public One {
};
class Three {
public:
One one;
};
derleyici sınıf bir kişi vardır bilse de, kötü kokan çünkü yukarıdaki iki örnek derlemek olmaz nedenidir Bir sınıfın hangi alanın, yöntemlerin veya sanal yöntemlerin olduğunu, yalnızca adın tanımlandığından, gerçek sınıf tanımını değil, içerebileceğini bilmek.
Evet.
class Man;
Bu "eksik tipi" olarak Man
ilan edecek. İşaretçiyi veya referansları ve diğer birkaç şeyi bildirebilirsiniz, ancak bir örnek oluşturamaz veya üyelerine erişemezsiniz. Bu, eksik bir türle yapabileceğiniz ve yapamayacağınız şeyin tam bir açıklaması değildir, ancak genel bir fikirdir.
Dikkat edilmesi gereken önemli nokta, daha sonra tüm türlere devam edip dahil edip erişim kazanabilirsiniz. Başlıktaki eksik türleri kullanabilir ve daha sonra kullanmak için tam başlık tanımını cpp'ye dahil edebilirsiniz. –
- 1. Başka bir uzantıya ihtiyaç duyan Python'a bir C uzantısı yapmak
- 2. C++, karşılıklı ihtiyaçları olan iki sınıf
- 3. Düzenli ifade iki sayı birbirine
- 4. bootstrap3:/iki görüntü birbirine yanıt veriyor
- 5. İki css özelliğini nasıl birbirine bağlarsınız?
- 6. İndekslemeye ihtiyaç duyan sütunların bir listesini otomatik olarak oluşturmanın bir yolu var mı?
- 7. Bootstrap altbilgisi, mobildeki tam genişlik ve iki sütunu birbirine bağlar
- 8. Birbirine erişebilen iki yapı nasıl uygulanır? Ben yazdıklarını
- 9. Bir değişken neden desende iki kez birbirine bağlanabilir?
- 10. Tcl dizeleri nasıl birbirine eklenir?
- 11. OOP'da Polimorfizm'e ihtiyaç nedir?
- 12. C++ neden operatör eş anlamlılarına ihtiyaç duyar?
- 13. Farklı GCC diyalektleri birbirine bağlanabilir mi?
- 14. Birbirine ait varsayılan tür örnekleri
- 15. Linux üzerinde birbirine eşdeğer eşdeğer
- 16. Bir sınıfta iki sınıf genişletebilir misiniz?
- 17. C++ içinde birbirini veri olarak kullanan iki sınıf nasıl oluşturulur?
- 18. C++ devralma iki sınıf, noktası ve pikseli bulunan soru
- 19. Android ChatHead sadece kendi kendine sınırlamayı sınırlıyor, AMA İkincisi, ikinci kez aynı anda iki kez, anlık sohbet alanına ihtiyaç duyan ikinci parmağınızı desteklemeye ihtiyacım var,
- 20. Enum'u sınıf inTemplates C++
- 21. İki tablo var her sınıf
- 22. @jsonbackreference İki sınıf var ilişkiyi
- 23. Scala, İki dosya var sınıf
- 24. JavaScript - Birden çok dizginin birbirine benzememesinin düzenli bir yolu birbirine eşit değildir
- 25. İki adede aynı adla sınıf (kasıtlı olarak)
- 26. Soyut sınıf C# nasıl oluşturulur?
- 27. Birbirine bağlı seçenekler nasıl edinilir?
- 28. Birbirine bağlı olan zincirleme kuralları
- 29. Birbirine doğrusal olmayan birden fazla x ekseni
- 30. Sınıf ve std :: C++ sınıf üyesindeki async
İstediğiniz gibi geliyor ileriye dönük bir bildirim. BlockDude için – mooware
+1. –