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

هل من طريقة لتطبيق دالة غير معرفة ؟؟

بدأه azzoz2 في 16 يونيو 2009 · 9 رد · 710 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه


using namespace std;

void apply ()
{
//func();
}

void func()
{
cout << ":: function ::" << endl;
}

int main()
{
apply();
system("pause");
return 0;
}
#include<iostream>

السؤال هنا هل من الممكن أن أطبق أو استدعي الدالةfunc

داخل الدالةapply

بحيث إذا استدعيت الدالة apply

تنفذ الدالة func

لكن بشرط أن لا تعرف الدالة funct

مسبقا ... مثل هذا الكود


using namespace std;
void func();
void apply ()
{
func();
}

void func()
{
cout << ":: function ::" << endl;
}

int main()
{
apply();
system("pause");
return 0;
}
#include<iostream>

بانتظاركم ....

#2

اجعل func تسبق apply في الترتيب ...

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

‏^‏^^^

أخي الكريم .. لو تعيد قراءة الموضوع يتضح لك أكثر ..

أنا ذكرت بشرط عدم تعريفها مسبقا أي قبل دالة apply

#4
#include<iostream>
using namespace std;

void func();

void apply ()
{
	func();
}

void func()
{
cout << ":: function ::" << endl;
}

int main()
{
apply();
system("pause");
return 0;
}

هذا من قواعد C أصلاً :)

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 16 يونيو 2009 في 21:08

#5

‏^‏^^^

أعلم ذلك أخي الكريم ..

لكن هناك تحايل على هذه القاعدة..

السؤال كيف يكون هذا التحايل ؟؟

#6
اقتباس
أخي الكريم .. لو تعيد قراءة الموضوع يتضح لك أكثر ..

أنا ذكرت بشرط عدم تعريفها مسبقا أي قبل دالة apply

اما انك لم تفهم كلامي او انك لا تعرف كيف تصيغ سؤالك !

انت قلت بدون تعريف ، قلت لك ضع الدالة func نفسها قبل apply ولم اقل ضع تعريف لها !!

#include<iostream>
using namespace std;


void func()
{
cout << ":: function ::" << endl;
}


void apply ()
{
func();
}



int main()
{
apply();
system("pause");
return 0;
}

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

السلام عليكم

هل تنفع هذه الطريقه

#include<iostream>
using namespace std;
void apply (void(*func)())
{
func();
}
void func()
{
cout << ":: function ::" << endl;
}

int main()
{
apply(func);
system("pause");
return 0;
}

تحياتى

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#8

طيب .. ولا تزعل أخوي ..

أعيد وأقول:

بشرط عدم تعريفها مسبقا ك proto type

وأيضا بشرط عدم كتابتها مسبقا ..

يعني لا بد تكون ال‎ funcمكتوبة بعد الapply

#9

هل هذا ما تريد؟؟؟

#include <stdio.h>

void (*pFunction) ();

void apply() {
	(pFunction)();
}

void func() {
	printf(":: Func ::\n");
}

int main() {
	pFunction = func;
	apply();
	getchar();
	return 0;
}

SAFETY TIP : Always delete what you new, and free what you malloc, never mix new with free or malloc with delete.

#10

MoHammaD_93

amin_mu123

جزاكما الله خيرا ....

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

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

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

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

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