Şimdi Ara

C++ Basit Bir Soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
476
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.







  • .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.
  • 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.
  • 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.
  • 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.
  • Faydalı olabilecek konuları tutuyorum, isterseniz anonime alabilirsiniz. @Kemâncı

    • 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.
  • Yapay Zeka’dan İlgili Konular
    C++ Basit Bir Soru
    12 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.