类函数指针使用
时间:2010-09-16 来源:wwm
#include<iostream>
using namespace std;
class CObj
{
public:
void f0(void) //普通成员函数
{
cout<<"CObj t::f()"<<endl;
}
static void g0(void) //静态成员函数
{
cout<<"CObj::g()"<<endl;
}
virtual void h0(void) //虚拟的成员函数
{
cout<<"CObj::h()"<<endl;
}
};
class CTest:public CObj
{
public:
int aa;
void f(void) //普通成员函数
{
cout<<"CTest::f()"<<endl;
}
static void g(void) //静态成员函数
{
cout<<"CTest::g()"<<endl;
}
virtual void h(void) //虚拟的成员函数
{
cout<<"CTest::h()"<<endl;
}
};
void ftest()
{
int a=0;
a=2;
}
typedef void (CObj::*FUNC)();
typedef void (*FUNC2)();
int main()
{
CTest o;
CObj *pbase ;
pbase = dynamic_cast<CObj*>(&o);
FUNC pfunc =NULL;
pfunc = (FUNC)&CTest::f;
(pbase->*pfunc) ();
FUNC2 fun2;
fun2= &ftest;
fun2();
return 0;
}
using namespace std;
class CObj
{
public:
void f0(void) //普通成员函数
{
cout<<"CObj t::f()"<<endl;
}
static void g0(void) //静态成员函数
{
cout<<"CObj::g()"<<endl;
}
virtual void h0(void) //虚拟的成员函数
{
cout<<"CObj::h()"<<endl;
}
};
class CTest:public CObj
{
public:
int aa;
void f(void) //普通成员函数
{
cout<<"CTest::f()"<<endl;
}
static void g(void) //静态成员函数
{
cout<<"CTest::g()"<<endl;
}
virtual void h(void) //虚拟的成员函数
{
cout<<"CTest::h()"<<endl;
}
};
void ftest()
{
int a=0;
a=2;
}
typedef void (CObj::*FUNC)();
typedef void (*FUNC2)();
int main()
{
CTest o;
CObj *pbase ;
pbase = dynamic_cast<CObj*>(&o);
FUNC pfunc =NULL;
pfunc = (FUNC)&CTest::f;
(pbase->*pfunc) ();
FUNC2 fun2;
fun2= &ftest;
fun2();
return 0;
}
相关阅读 更多 +