Avatar ·

لماذا نحتاج إلى ملفات الرأس (.h) وملفات التنفيذ (.cpp) في لغة C++؟

مرحباً بالجميع! لقد بدأت للتو في تعلم لغة C++ ولا أستطيع فهم سبب هذا التقسيم إلى ملفات header وملفات .cpp. في Java أو Python كنت ببساطة أكتب كل الكود في ملف واحد، وكان كل شيء يعمل. أما هنا فهناك فوضى من #include و #pragma once وغيرها من التوجيهات.\n\nعلى سبيل المثال، أكتب برنامجاً بسيطاً:\n\n```cpp\n// main.cpp\n#include \n\nvoid sayHello() {\n std::cout << "Hello!" << std::endl;\n}\n\nint main() {\n sayHello();\n return 0;\n}\n```\n\nوهذا يعمل. لماذا أحتاج إلى إنشاء sayHello.h و sayHello.cpp منفصلين؟ يمكنني كتابة كل شيء في ملف واحد. سمعت أن هذا ضروري لتنظيم الكود ولتجنب أخطاء linking، لكنني لا أفهم كيف.\n\nخاصة أنني أشعر بالخوف عندما أرى أنه في ملف .h يكتبون declarations للدوال (prototypes)، وفي ملف .cpp يكتبون