İyi uygulama, derlenmediği sürece başlık stratejiniz için endişelenmemenizdir.
Kodunuzun başlık kısmı, kolayca çözülen bir derleme hatası elde edene kadar kimsenin bakmaması gereken bir satır bloğudur. 'Doğru' üslubun arzusunu anlıyorum, ama hiçbir şekilde gerçekten doğru olarak tanımlanamaz. Her sınıf için bir başlık eklemek, rahatsız edici bir sıralamaya dayalı derleme hatalarına neden olma ihtimalinin daha yüksek olmasına karşın, bu derleme hatalarının, dikkatli kodlamanın çözebileceği sorunları da yansıtıyor (muhtemelen düzeltmek için zaman ayırmayacaklarsa da).
Ve evet, olur içine almaya başlamak kez bu düzen temelli problem friend
arazi.
Sorunu iki durumda düşünebilirsiniz.
Durum 1: Bir düzineden az, birbirleriyle etkileşime giren az sayıda sınıfınız var. Bu başlıkları, birbirlerine bağımlılıklarını etkileyebilecek şekillerde düzenli olarak ekler, kaldırır ve başka şekillerde değiştirirsiniz. Kod örneğinizin önerdiği durum budur.
Başlık kümesi, kırpılan herhangi bir sorunu çözmenin karmaşık olmaması için yeterince küçüktür. Zor sorunlar, bir veya iki başlığın yeniden yazılması ile giderilir. Başlık stratejiniz hakkında endişelenmek, var olmayan sorunları çözmektir.
2. Durum: Onlarca sınıfınız var. Bazı sınıflar programınızın bel kemiğini temsil eder ve başlıklarının yeniden yazılması sizi kod tabanınızın büyük bir kısmını yeniden yazmaya / tekrar derlemeye zorlar. Diğer sınıflar bu omurgayı işleri başarmak için kullanır. Bu, tipik bir işletme ortamını temsil eder. Başlıklar, dizinlere yayılmıştır ve her şeyin adını gerçekçi bir şekilde hatırlayamazsınız.
Çözüm: Bu noktada, sınıflarınızı mantıksal gruplar halinde düşünmeniz ve bu grupları tekrar tekrar yapmak zorunda kalmamak için başlıklara ayırmanız gerekir #include
. Bu sadece hayatı kolaylaştırmakla kalmaz, aynı zamanda önceden derlenmiş başlıklardan yararlanmak için gerekli bir adımdır .
İhtiyacın #include
olmayan ama kimin umrunda değil mi?
Bu durumda, kodunuz ...
#include <Graphics.hpp>
struct Entity {
Texture texture;
RenderObject render();
}