复习之模拟虚表
//*******************************//MyCPPVirtual.h
class MyVirtual;
typedef void (MyVirtual::*PFUN)();// 注意点二:声明类的函数指针
extern PFUN pf;
class MyVirtual
{
public:
int nNum;
PFUN * pfun; // 注意点三:这里是指针的指针
public:
MyVirtual(int num);
virtual ~MyVirtual();
public:
void ShowNum();
};
//*******************************
//MyCPPVirtual.cpp
#include "stdafx.h"
#include "MyVirtual.h"
MyVirtual::MyVirtual(int num)
{
nNum = num;
pfun = pf;
pfun = ShowNum;
}
MyVirtual::~MyVirtual()
{
}
void MyVirtual::ShowNum()
{
cout<<nNum<<endl;
}
//*******************************
//MAIN.CPP
#include "stdafx.h"
#include "MyVirtual.h"
PFUN pf;// 注意点一:空间要放到数据区
int main(int argc, char* argv[])
{
MyVirtual myv(15);
(myv.*(myv.pfun))();// 注意点四:(obj.*(obj.pfun))()
return 0;
}
页:
[1]