PDA

View Full Version : سوال: پوینتر یک تابع



amir_mhdi
دوشنبه 23 اردیبهشت 1392, 16:29 عصر
با سلام.
یه مشکلی دارم تو کلاسها.

//------------------------------------------------------
class A
{
private:
public:
void (*Tick)();
A()
{
}
void Exe(char d)
{
Tick();
}
};
//------------------------------------------------------
void tt()
{
}
//------------------------------------------------------
class B
{
private:
public:
A tim;
void bb()
{

}
B()
{
tim.Tick = bb;
}
void show()
{
tim.Exe(5);
}
};
//------------------------------------------------------
int main()
{
B g;
g.show();
while(1);
}


وقتی تو کلاس B تو سازندش مینویسم tim.Tick=tt
خطا گرفته نمیشه و کار انجام میشه.
اما وقتی میخوام یک تابع از درون کلاس B رو به عنوان تابع Tick معرفی کنم ، خطا میده .

UfnCod3r
دوشنبه 23 اردیبهشت 1392, 18:16 عصر
بخاطر اینکه اشاره گر ب تابع عضو کلاس با اشاره ب تابع معمولی فرق داره .
http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage% 2Fref%2Fcplr034.htm
http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible