Refactoring Friendly C ++ ile daha fazlası
C ++ sen yok olması hiç başlıklarını kullanmak. Tüm nesneyi tıpkı C # veya Java ile olduğu gibi tek bir dosyada tanımlayabilirsiniz. C geliştiricileri genellikle dış aramaları yalnızca bir başlık dosyasında tutar. Tüm dahili çağrılar .c dosyasında tanımlanır. Aynı şekilde, C ++ .h dosyalarınızı sınıflar / arayüzler (salt sanal soyut sınıflar) / etc için saklayabilirsiniz. DLL dışında paylaşılması amaçlanmıştır. Dahili sınıflar / yapı / arayüz vb. İçin ihtiyacınız olan .cpp dosyasını eklemelisiniz:
#include<myclass.cpp>
Bu en popüler yaklaşım gibi görünmüyor, ancak yasal C ++. Kesinlikle tüm dahili kodunuz için bir olasılık olurdu. Bu, kütüphanenizin / çalıştırılabilir kodun dışındaki kod için etkileşimde bulunmak için daha kararlı bir arabirim sağlarken, iç kodun ve sınıfların kümesinin çok daha radikal bir şekilde değişmesini sağlar.
Tüm sınıfınızı bir dosyada bulundurmak, istediğinizi yapmayı kolaylaştıracaktır. Bir yöntemi yeniden adlandırmak ve yöntemin çağrıldığı her yeri araştırmak zorunda kalmaz, ancak daha anlaşılır hata mesajlarınız olduğundan emin olur. Başlığınızın bir yöntemi bir yöntem olarak bildirmesinden daha kötü bir şey yoktur, ancak bunu farklı şekilde uygularsınız. Başlık dosyasını çağıran diğer kod düzgün bir şekilde derlenecek ve bir bağlantı istisnası alacaksınız, uygulama dosyası ise yöntemin tanımlanmadığından şikayet eden dosya olacak. Uygulanan her yöntemi (gerçek sınıf bildiriminde) tanımladığınızda, hangi dosyayı içerdiğinden bağımsız olarak aynı hata iletisini alırsınız.
Bu soruya da bakmak isteyebilirsiniz: C ++ için iyi refactoring araçları
C / C ++ Başlık / Uygulama Dosyalarını Nasıl Çözer?
Temel C düzeyinde (ve C ++ bu temel üzerine kuruludur), başlık dosyaları bir derleyicinin nesne dosyasını yaratmasına izin verecek bir fonksiyon / struct / değişken vaadini ilan eder . Benzer şekilde C ++ üstbilgi dosyaları, işlevlerin, yapıların, sınıfların vb. Vaadini ilan eder.
.C veya .cpp dosyaları uygulamaya sahiptir. Derleyici, her uygulama dosyasını bir nesne dosyasına dönüştürdüğü için, uygulanmayan kavramlara (başlıkta belirtilenler) kancalar vardır. Bağlayıcı, kancaları diğer nesne dosyalarındaki uygulamalara bağlar ve tüm kodu (paylaşılan kitaplık veya çalıştırılabilir) içeren daha büyük bir ikili dosya oluşturur.
Özel VS
Visual Studio'dakilerle çalışmak için işleri biraz daha kolaylaştıracak bazı sihirbazlar var. Yeni sınıf sihirbazı eşleşen başlık ve uygulama dosyalarınızı oluşturacaktır. Yeni yöntemler bildirmenize izin verecek bir sınıf tarayıcı özelliği bile var. Başlıktaki tanımı ve .cpp dosyasındaki uygulama saplamasını enjekte edecektir. Visual Studio, bu özelliklere on yıldan fazla bir süredir (kullandığım sürece) sahiptir.