Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ملفات الـ Header وملفات الـ Source

جزء من قسم البرمجة كائنية التوجه في رحلة 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

تمنع حواجز header (#ifndef، #define، #endif) تضمين header عدة مرات. يعلن ملف .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++ عبر الإنترنت