Menu
Coddy logo textTech

קובצי Header וקובצי מקור

חלק מהיחידה תכנות מונחה עצמים במסלול ה-C++ של Coddy. שיעור 3 מתוך 104.

ב־C++, הקוד מחולק לקובצי כותרת (.h) עבור הצהרות ולקובצי מקור (.cpp) עבור מימושים.

קובץ כותרת עם הגנות כותרת (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

קובץ המקור עם המימושים (helpers.cpp)

#include "helpers.h"

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

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

שימוש בהם ב־main

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

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

פלט:

Hello, Alice!
8

משמרי כותרת (#ifndef, #define, #endif) מונעים הכללה של קובץ כותרת מספר פעמים. קובץ .h מצהיר מה קיים (אבות טיפוס), וקובץ .cpp מגדיר איך זה עובד (מימושים).

challenge icon

אתגר

בינוני

צרו שלוש פונקציות עזר, המחולקות בין קובץ כותרת לקובץ מקור:

  • helpers.h: הצהרות פונקציות עם הגנות כותרת
  • helpers.cpp: מימושי פונקציות

פונקציות ליצירה:

  • greet(name): מחזירה "Hello, <name>!"
  • ageInTenYears(age): מחזירה age + 10
  • checkAdult(name, age): מחזירה "<name> is an adult" אם הגיל >= 18, אחרת "<name> is a minor"

נסו בעצמכם

#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 iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר C++ אונליין