السلام عليكم
استخدمت في برنامجي مؤشر يخزن عنوان داله معينه
وكل شي تمام كما في البرنامج التالي
#include <stdio.h>
#include <conio.h>
void F1()
{
cprintf("F1");
}
/*--------------------------*/
void F2()
{
cprintf("F");
}
/*----------------------*/
void main()
{
void (*ptr) ();
ptr = F1;
ptr();
ptr = F2;
ptr();
getch();
}لكن المشكله لما اتعامل مع Class
كما في البرنامج التالي
#include <stdio.h>
#include <conio.h>
class My
{
private:
void (My::* ptr)();
public:
void F1();
void F2();
};
///////////////////////////
void My::F1()
{
cprinf("F1");
}
//////////////////////////
void My::F2()
{
ptr = &My::F1;
//
ptr(); // Error
//
cprintf("F2 ");
}
//////////////////////
void main()
{
My obj;
obj.F2();
getch();
}حيث لايعتبر المترجم ان (ptr) مؤشر لعنوان الداله فما الحل؟؟؟؟؟؟؟