الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن استدعاء ملف cpp من ملف cpp اخر

مغلق
بدأه naim في 13 أبريل 2005 · 9 رد · 568 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف يمكن استدعاء ملف cpp من ملف cpp اخر

ان عندي واجهة رئيسية:

menu.cpp ويحتوي

1-add

2-Delete

3-???????

4-....

ووعند الضغط علىadd يستدعي add.cpp(الكود)

فكيف يمكن استدعاء add.cpp!!!

شكراااااااااا!

ts_800_5_LiberateYourDesktop.jpg

MNFayyad

#2

السلام عليكم

بالنسبة لسألك

فالجواب هو :

#include"menu.cpp"

و السلام

#3

شكر

ولكن انا لا اريد تخزينه في include وجربت طريقتك يعطيني errore

ولكن تم تخزينه في مجلد على \:e متلا

ts_800_5_LiberateYourDesktop.jpg

MNFayyad

#4

لم أفهم

أرجوالتوضيح أكثير

و هل ممكن أن ترفق لنا مثالك لكي نستطيع المساعدة

#5

شكر

انا عندي اربع ملفات cpp

الملف الاول يوجد فيه كود لاظهار التالي:

باستخدام case

1-add

2-delete

3-sort

بحيث ادا ضغط على 1 متلا يقوم بتنفيد الكود الموجود في case1

وهو كود خاص بadd متلا . ولكن بدلا ان اكتب الكود في case1 اكتبه في ملف اخر اسمه add.cpp (بحيت يكون موجود فيه كودadd)

اقوم بوضعه في case1

switch(x)

{

//--------------------------------------

case 1://add

#include"add.cpp"//يتم استدعاء الملف بدل كتابة اسطر من الكود

break;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

case 2://Inventory Database Module

system("cls");

cout<<"\avgggg"<<endl;

break;

ts_800_5_LiberateYourDesktop.jpg

MNFayyad

#6

شكر

انا عندي اربع ملفات cpp

الملف الاول يوجد فيه كود لاظهار التالي:

باستخدام case

1-add

2-delete

3-sort

بحيث ادا ضغط على 1 متلا يقوم بتنفيد الكود الموجود في case1

وهو كود خاص بadd متلا . ولكن بدلا ان اكتب الكود في case1 اكتبه في ملف اخر اسمه add.cpp (بحيت يكون موجود فيه كودadd)

اقوم بوضعه في case1

switch(x)

{

//--------------------------------------

case 1:/اضافة

// يتم استدعاء الملف بدل كتابة الكود الخاص بالاضافة

#include"mainmenu.cpp"

break;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

case 2://Inventory Database Module

system("cls");

cout<<"\avgggg"<<endl;

break;

ts_800_5_LiberateYourDesktop.jpg

MNFayyad

#7

ما هو الكومبايلر اللذي تستخدمه؟ إذا كنت تستخدم كومبايلر من سطر الأوامر فعليك ان تحول كل ملف cpp الى ملف .o و من ثم ترجمة ملفات الـ .o مع بعضهم (ما أعرف التفاصيل .. لكن هذا بشكل عام)

أما لو كنت تستخدم بيئة تطوير مثلا visual studio او غيرها, فعليك وضع ملفي الـ cpp في بروجكت واحد.

و هذا يحل جزء من المشكلة فقط ..

الجزء الآخر اللذي لا مفر منه, هو ان يتعرف الملف الأول على الدوال الموجودة في الملف الثاني, و هذه تستطيع عملها بعدة طريق ..

تستطيع كتابة الـ function declaration في الملف اللذي تريد منه استدعاء الدالة.

مثلا عندك ملف x.cpp به الفنكشن

int add( int x, int y )
{
    return x + y;
}

و عندك ملف آخر, y.cpp تريد استدعاء الدالة منه,

int sum = add( first, second );

هنا عليك ان تكتب الـ declaration او الـ prototype للفنكشن قبل استخدامه ..

//function declaration, to tell the compiler that the function exists somewhere ..
int add( int, int); 

[.....]

int sum = add( first, second );

او ان تضع هذا الـ declaration في ملف .h و تعمل include لهذا الـ h

#8

أضيف على رد الأخ الكريم hasan_aljudy

--

مثال بسيط

//Function.cpp

void add()
{
int a,b;
cout << "Enter a number : ";
cin >> a;
cout << "Enter a number : ";
cin >> b;
cout << " a + b = " << a + b << endl;
}

// Main.cpp
#include<iostream>
#include"Function.cpp"

using namespace std;

int main(int argc,char argv[])
{
int x;
cout << " 1 - add " << endl;
cout << " 2 -Clear screen" << endl;
cout << " 3 - Exit" << endl;
switch(x)
{
case 1:
add();
break;
case 2:
system("cls");
break;
case 3 :
cout << "Exit.." << endl;
default:
cout << "Error !!!" << endl;
}
return 0;
}

لقد كتبته مباشرة و أخشى أن تكون به أخطاء

و أضن أن هذا ما يلزمك أخي الكريم

و السلام عليكم

تم تعديل هذه المشاركة بواسطة GameDev4Arab في 13 أبريل 2005 في 19:16

#9

عندي إقتراح ، لماذا لا تضع كل الفنكشنس في ملف DLL و إذا احتجت لأي فنكشن قم بإستدعاء الفنكشن من ملف الـ DLL ستكون أسهل و أريح

#10

شكررررررررررررررررررررررررررررررررررررررررر

ts_800_5_LiberateYourDesktop.jpg

MNFayyad

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…