Menu
Coddy logo textTech

Başlık Dosyaları ve Kaynak Dosyaları

Coddy'nin C++ Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 3 / 104.

C++'da kod, bildirimler için başlık dosyalarına (.h) ve uygulamalar için kaynak dosyalarına (.cpp) ayrılır.

Header guard içeren başlık dosyası (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

std::string greet(std::string name);
int addNumbers(int a, int b);

#endif

Uygulamaları içeren kaynak dosyası (helpers.cpp)

#include "helpers.h"

std::string greet(std::string name) {
    return "Hello, " + name + "!";
}

int addNumbers(int a, int b) {
    return a + b;
}

Bunları main içerisinde kullanma

#include <iostream>
#include "helpers.h"

int main() {
    std::cout << greet("Alice") << std::endl;
    std::cout << addNumbers(5, 3) << std::endl;
    return 0;
}

Çıktı:

Hello, Alice!
8

Header guard'lar (#ifndef, #define, #endif), bir başlık dosyasının birden fazla kez dahil edilmesini önler. .h dosyası nelerin var olduğunu bildirir (prototipler), .cpp dosyası ise nasıl çalıştığını tanımlar (uygulamalar).

challenge icon

Görev

Orta

Bir başlık dosyası ve kaynak dosyasına bölünmüş üç yardımcı fonksiyon oluşturun:

  • helpers.h — Başlık korumalı (header guards) fonksiyon bildirimleri
  • helpers.cpp — Fonksiyon uygulamaları

Oluşturulacak fonksiyonlar:

  • greet(name)"Hello, <name>!" döndürür
  • ageInTenYears(age)age + 10 döndürür
  • checkAdult(name, age) — eğer age >= 18 ise "<name> is an adult", aksi takdirde "<name> is a minor" döndürür

Kopya kağıdı

C++ kodu, bildirimler için başlık dosyaları (.h) ve uygulamalar için kaynak dosyaları (.cpp) şeklinde düzenlenir.

Header guards (başlık koruyucuları) birden fazla dahil edilmeyi önler:

#ifndef HELPERS_H
#define HELPERS_H
// bildirimler buraya
#endif

Başlık dosyası (helpers.h) fonksiyon bildirimlerini içerir:

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

std::string greet(std::string name);
int addNumbers(int a, int b);

#endif

Kaynak dosya (helpers.cpp) uygulamaları içerir:

#include "helpers.h"

std::string greet(std::string name) {
    return "Hello, " + name + "!";
}

int addNumbers(int a, int b) {
    return a + b;
}

main içerisinde fonksiyonların kullanımı:

#include <iostream>
#include "helpers.h"

int main() {
    std::cout << greet("Alice") << std::endl;
    std::cout << addNumbers(5, 3) << std::endl;
    return 0;
}

Kendin dene

#include <iostream>
#include "helpers.h"

int main() {
    std::string name;
    int age;
    std::getline(std::cin, name);
    std::cin >> age;
    
    std::cout << greet(name) << std::endl;
    std::cout << "In 10 years you will be " << ageInTenYears(age) << std::endl;
    std::cout << checkAdult(name, age) << std::endl;
    return 0;
}
quiz iconKendini test et

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