C++ Build ve Derleme
Coddy'nin C++ Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 2 / 104.
C++ üç aşamada oluşturulur: Önişleme, Derleme ve Bağlama.
1. Ön İşleme — #include yönergeleri çözümlenir, başlık içerikleri kaynak dosyalara kopyalanır
#include <iostream> // Sistem başlığı
#include "my_file.h" // Kendi başlığınız2. Derleme — Her bir .cpp dosyası bağımsız olarak bir nesne dosyasına (.o) derlenir
// math_utils.cpp, math_utils.o dosyasına derlenir
// main.cpp, main.o dosyasına derlenir3. Bağlama (Linking) — Nesne dosyaları nihai yürütülebilir dosyada birleştirilir
// math_utils.o + main.o → program.exeBaşlık dosyası nelerin var olduğunu bildirir (prototipler). .cpp dosyası asıl uygulamayı sağlar. Bağlayıcı (linker), main.cpp içindeki çağrıları diğer .cpp dosyalarındaki uygulamalara bağlar.
Görev
Ortamath_utils.h başlık dosyası iki fonksiyon bildirir. Bunları math_utils.cpp dosyasında uygulayın:
doubleValue(int x)—x * 2değerini döndürürsquare(int x)—x * xdeğerini döndürür
Başlık dosyasını .cpp dosyanıza dahil ettiğinizden emin olun.
Kopya kağıdı
C++ üç aşamada oluşturulur: Önişleme, Derleme ve Bağlama.
Önişleme — #include yönergeleri çözümlenir, başlık içerikleri kaynak dosyalara kopyalanır:
#include <iostream> // Sistem başlığı
#include "my_file.h" // Kendi başlığınızDerleme — Her bir .cpp dosyası bağımsız olarak bir nesne dosyasına (.o) derlenir:
// math_utils.cpp, math_utils.o dosyasına derlenir
// main.cpp, main.o dosyasına derlenirBağlama — Nesne dosyaları nihai yürütülebilir dosyada birleştirilir:
// math_utils.o + main.o → program.exeBaşlık dosyası nelerin var olduğunu bildirir (prototipler). .cpp dosyası asıl uygulamayı sağlar. Bağlayıcı (linker), main.cpp içindeki çağrıları diğer .cpp dosyalarındaki uygulamalara bağlar.
Kendin dene
#include <iostream>
#include "math_utils.h"
int main() {
int num;
std::cin >> num;
std::cout << "Double: " << doubleValue(num) << std::endl;
std::cout << "Square: " << square(num) << std::endl;
std::cout << "Build successful" << std::endl;
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarC++ Build ve DerlemeBaşlık Dosyaları ve Kaynak DosyalarıAd Alanları ve KapsamC++'ta OOP'ye GirişSınıflar ve Nesneler'this' İşaretçisiMetotlar (Üye Fonksiyonlar)Öznitelikler (Veri Üyeleri)Ctor ve Dtor TemelleriÖzet - Basit Hesap Makinesi4Sınıf Özellikleri
Örnek ve Statik ÜyelerGetter ve Setter MetotlarıConst Üye FonksiyonlarMutable Anahtar KelimesiStatik Metotlar ve DeğişkenlerFriend Fonksiyonlar ve SınıflarÖzet - Banka Hesabı Yöneticisi7Kalıtım
Temel KalıtımKalıtım Erişim SeviyeleriCtor ve Dtor Çağrılma SırasıMetot Geçersiz KılmaSanal Fonksiyonlar ve VTableÇoklu KalıtımSanal KalıtımÖzet - Çalışan Hiyerarşisi10STL Genel Bakış
STL Genel Bakış ve FelsefesiSTL KonteynerleriİteratörlerSTL AlgoritmalarıFunctor'lar ve Lambda İfadeleriÖzet - Kelime Frekansı13Tasarım Kalıpları 1. Bölüm
Tasarım Kalıplarına GirişSingleton KalıbıFactory ve Abstract FactoryBuilder KalıbıObserver KalıbıStrategy Kalıbı2Bellek Yönetimi
Stack ve Heap Bellekİşaretçiler ve ReferanslarDinamik Bellek (new/delete)C++'ta Akıllı İşaretçilerC++'ta RAIIÖzet - Dinamik Dizi Yöneticisi5Kapsülleme
C++'da Erişim BelirleyicilerDerinlemesine Erişim BelirleyicilerBilgi GizlemeStruct vs Classİç İçe ve Dahili SınıflarÖzet - Öğrenci Kayıt Sistemi8Çok Biçimlilik
Derleme ve Çalışma Zamanı Çok BiçimliliğiFonksiyon Aşırı YüklemeSanal Fonksiyonlara Yeniden BakışSaf Sanal FonksiyonlarSoyut SınıflarC++'ta Arayüz TasarımıDynamic Casting ve RTTIÖzet - Şekil Hesaplayıcı3Yapıcılar ve Yıkıcılar
Varsayılan YapıcıParametreli YapıcıKopya YapıcıTaşıma YapıcısıYapıcı İlklendirme ListeleriTemsilci YapıcılarYıkıcılara Derinlemesine BakışÜç / Beş / Sıfır KuralıÖzet - String Sınıfı6Operatör Aşırı Yükleme
Operatör Aşırı Yüklemeye GirişAritmetik Operatör Aşırı YüklemeKarşılaştırma Operatörü Aşırı YüklemeStream OperatörleriAtama Operatörü Aşırı Yükleme[] ve () Operatör Aşırı YüklemeTip Dönüşüm OperatörleriÖzet - Matris Sınıfı9Şablonlar
Fonksiyon ŞablonlarıSınıf ŞablonlarıŞablon ÖzelleştirmeVariadic ŞablonlarSFINAE ve Type Traits TemelleriÖzet - Generic Konteyner