2012-07-01 23 views
5

Her header/cpp dosyasında ihtiyacım olan her şeyi içermeli miyim? 2d oyun motoru atm (çoğunlukla uygulama için) üzerinde çalışıyorum ve kodumu gözden geçirirken, hemen hemen her dosyada string ve vector'ları tekrarladığımı fark ettim. Bu bir sorun mu ve bununla nasıl başa çıkabilirim? Büyük projelerde #include nasıl kullanılır?

Hep yazdığınız her sınıf veya modül tabiri caizse, içinde kendi iki ayak üzerinde durmalıdır görüşünü yaşadım. Gerçekten jenerik programlamanın tadını çıkardım (kendi komut dosyası motorumla, kendi komut dosyası dilimi de ekliyorum) ancak bunun çok fazla yük ve karışıklığa neden olabileceğini de fark ettim.

+0

birden çok kez herhangi bir soruna neden olmamalıdır bir başlık dahil uygun '# ifdef's varsa. Ayrıca 2 numarada haklısın. –

+0

, ortak bir içeriğe sahip olan bir başlık dosyası oluşturmak istiyorsanız, bunun yerine bunu yapabileceğinizden daha fazlasını yapmayacaksınız. Ve o dosyaya çok fazla yer vermemeye ve/veya bu dosyayı tahtaya dahil etmeme karşı dikkatli olurdum. – twain249

+0

Eğer jenerik programlamaya aşina iseniz, "#include" c/C++ 'yı esnek olmayan ve unhandy olarak hissedebilirsiniz. Yapmanız gereken şey c/C++ 'yi tanımak ve c/C++' da düşünmektir. :) – ciphor

cevap

5

Ben sadece gerektiğinde <string> ve <vector> dahil sopa olacaktır. Google C++ Stil Kılavuzu include order nasıl başa emin bireysel başlık dosyaları kendi diken olduğu gelince

, ben beğendim. Temel olarak, her zaman foo.cpp içerisindeki diğer tüm içeriklerini içermesi için karşılık gelen foo.hpp listesini belirtin. Böylelikle, foo.hpp'un bir şeyden önce eklenmesini beklemediğini ve orada olmaması durumunda başarısız olacağını biliyoruz.

+0

, ben Google tarafından sağlanan kılavuz gibi, bu bir değişiklik: p –

2

Bu bir sorun değil. Her dosyada, mutlak asgari bağımlılıkları içermemelisiniz - artık yok, ama daha az değil.

İlgili konular