المتغيرات
فضاءات التسمية
أفعال

توجيهة التضمين

من cppreference.com


توفر لغة c++ توجيه include لتضمين المكتبات المتوفرة لديك ,هذا إن كانت مكتبة أساسية مثل iostream أو إن كانت خاصة بك , وبما أن لغة c++ مقسمة إلى قسمين , قسم التصريح (header) وقسم المصدر (cpp) فلابد من شي للربط بينهما , وهي include# .

محتويات

[تعديل] القاعدة :

#include <iostream> // تضمين المكتبات الأساسية standard C++ library .
 
#include "class1.h" // تضمين المكتبات الخاصة فيك


يمكنك التبديل بينهما لكن يفضل إستخدامهم كما هم , للتفريق بين المكتبات الأساسية والخاصة فقط لاغير .

[تعديل] قسم التصريح header.h :

في هذا القسم يجب عليك التصريح على الأعضاء التي تريد استخدامها مثل (مجال الأسماء numespace ,فئات class, تركيبات struct, تعدادات enum ..) , في هذا القسم يفضل أن لاتكتب أي كود (يمكنك كتابة الكود فيه) ولايفضل ذلك لأنه صمم فقط للعرض الأولي للكود البرمجي ,وعندما تكتب الكود فيه يفقد خاصيته التي صمم من أجلها , لنأخذ مثال على ذلك وليكن لدينا الملف class1.h :

#include <iostream>
 
class class1
{
public:
    class1(int y);
   ~class1();
    void add(int num) { x += num; }
    void show();
private:
    int x;
};


الآن أصبح لدينا مكتبة خاصة بنا وهي class1.h ,يمكن أن نستدعيها بواسطة التوجيه include# إلى الملفات المصدرية الأخرى .

[تعديل] * تضمين المكتبة مرة واحدة فقط :

تختلف هذه التوجيه حسب المترجم التي تكتب فيه الكود الخاص فيك ففي محرر Visual c++.net يوجد التوجيه pragma once أما في محرر qt مثلا فيستخدم التوجيات المتوفرة .

1- visual c++ .net :

pragma once
 
class name 
{
   ....
};


2- Qt Creater editor :

#ifndef X_H
#define X_H
class name 
{
   ....
};
#endif // X_H


[تعديل] قسم المصدر source.cpp :

إذا كان ذلك القسم للعرض الأولي للكود فهذا القسم هو اللب الأساسي للكود ,ومن خلاله يمكنك أن ترينا إبداعك البرمجي , فكل ماسبق من تعريف لن يعمل إلا بكتابة الكود المناسب له , وهذا لايلزمك أن تكتب الكود لكل الأعضاء التي عرفتها في الأعلى :

#include "class1.h"
 
class1::class1(int y)
{
    x = y;
}
class1::~class1()
{
    x = 0;   
}
void class1::show()
{
    std::cout << x;
}


[تعديل] الملف الأساسي main.cpp :

بعد كتابة المكتبة الخاصة بك والإنتهاء منها لابد من تنفيذها , وهو من استدعائها في دالة main الموجودة في الملف main.cpp , وبما أن الملف من (المصدر) اي امتداده هو .cpp أي لن يتم تنفيذ الكود الخاص فيك بدون تضمينها بواسطة include# , تابع الكود التالي :

#include "class1.h"
 
int main(int argc, char *argv[])
{
    class1* cla_;
    cla_ = new class1(20);
    cla_->add(30);
 
    cla_->show();
 
    return 0;
}

الخرج:

50