Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
465
Tıklama
0
Öne Çıkarma
C++ Basit Bir Soru
K
12 yıl
Yarbay
Konu Sahibi

Bu header dosyaları nasıl oluyor anlayamadım şimdi ben bi gui projesi oluşturdum(wxwidgets).iki tane cpp dosyası ve yanındada iki tane h dosyası oluşturdu,
projenin adına simpleGui koymuştum,
main ' ise , simpleGuiMain;
app , simpleGuiApp

gibi isimler verdi ide kendi kendine.Bende daha kolay anlayıp,sınıflarda karışıklık çıkmasın diye önündeki simpleGui ismi silerek sadece main ve app kaldı.(tabi header dosyalarının isimlerinide değiştirdim.)

Şimdi gelelim asıl sorularıma :
1)Derleyici yada işlemci önce header dosyalarınımı okuyor ? (Çünkü main.h'de virtual bool onInit() diye bir fonksiyonu çağırıyordu.)
2)Diyelim , ilk header dosyalarını okuyor ben bunların isimlerini değiştirdim ya bunu nasıl anladı?
3)Yoka Conf.ini gibi bir dosyasımı oluyor böyle çok sınıflı programlarda?(ilk main.h'yi çalıştır, o main.cpp ' yi ,main.cpp'de zaten app.cpp ' yi çağıracaktır,ya app.h'ye noldu?Böyle olursa app.cpp iki kez çağrılmış olacak. )

Şimdiden teşekkürler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
12 yıl
Yarbay

.h, .cpp çağırma diye birşey yok. Kaynak kod dosyalarının derlenebilmesi için tanımlayıcı ifadelere (nesne bildirimleri vs.) ihtiyaç var. Bunlar başlık dosyaları içerisine konur.

Mesela .cpp dosyasında Window w; diye birşey var fakat başlık dosyası yok. Derleyici bu durumda undefined... türünden bir hata verir çünkü w nesnesini oluşturabilmesi için sınıf bilgisi lazım ve w nesnesini kullanan her dosyanın window.h yi include etmesi gerekli.


Bu mesaja 1 cevap geldi.
K
12 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: elektro_gadget

.h, .cpp çağırma diye birşey yok. Kaynak kod dosyalarının derlenebilmesi için tanımlayıcı ifadelere (nesne bildirimleri vs.) ihtiyaç var. Bunlar başlık dosyaları içerisine konur.

Mesela .cpp dosyasında Window w; diye birşey var fakat başlık dosyası yok. Derleyici bu durumda undefined... türünden bir hata verir çünkü w nesnesini oluşturabilmesi için sınıf bilgisi lazım ve w nesnesini kullanan her dosyanın window.h yi include etmesi gerekli.

Hmm.. yani ilk hangisi çalışacak diye birşey yok, derleyici direk olarak kod dosyalarına bakıyor .

Şimdi anladım yani önce hangisi sonra hangisi çalışacak diye bir sıra yok diyebiliriz , bunu bizim yazmamıza bağlı olarak işlemci kendi sıraya koyarak çalıştıyor.


Bu mesaja 1 cevap geldi.
S
12 yıl
Çavuş

Derleyici sadece kod dosyalarını(.cpp) derler.

Önişlemci, başlık dosyalarını .cpp içine yerleştirir.

Önce önişlemci işini yapar sonra derleme başlar.


Bu mesaja 1 cevap geldi.
K
12 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: sawer

Derleyici sadece kod dosyalarını(.cpp) derler.

Önişlemci, başlık dosyalarını .cpp içine yerleştirir.

Önce önişlemci işini yapar sonra derleme başlar.

Sağolun hocam teşekkürler.

Cevap biraz geç oldu ama.



N
2 ay
General

Faydalı olabilecek konuları tutuyorum, isterseniz anonime alabilirsiniz. @Kemâncı




Bu mesajda bahsedilenler: @Kemâncı
C
5 gün
Teğmen

  • Derleyici sıralı olarak önce header, sonra cpp diye bir dosya okuma sırası izlemez.
  • Dosya isimlerini değiştirince, include’ları da değiştirdiysen hiçbir sorun olmaz, çünkü derleyici include ile belirler.
  • Çalışma sırası, C++’da main() fonksiyonundan başlar; header dosyası veya ini dosyasıyla bir sıralama yapılandırması yoktur.
  • Header dosyaları programın başlama sırası ile ilgili değildir, sadece kodun derlenirken birden fazla dosyada tekrarını ve modülerliğini sağlar.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.