#include<iostream>
using namespace std;
typedef int arr5[5];
typedef arr5* p_arr5;
typedef p_arr5 arrp10[10];
arr5 togs;
p_arr5 p2;
arrp10 ap;
int main(){
for (int i = 0; i < 5; i++)
togs[i] = i;
p2 = &togs;
for (int i = 0; i < 5; i++){
cout << (*p2)[i]<< " ";
}
cout << endl;
*(ap + 9) = p2;
for (int i = 0; i < 5; i++){
cout << (**(ap + 9))[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
Virtual table
#include<iostream>
using namespace std;
class Base{
public:
virtual void fun1(){ cout << "Base:fun1" << endl; }
virtual void fun2(){ cout << "Base:fun2" << endl; }
virtual void fun3(){ cout << "Base:fun3" << endl; }
private:
int num1;
int num2;
};
typedef void (*Fun)(void);
int main(){
Base b;
Fun pFun;
pFun = (Fun)*((int*)*(int*)(&b) + 0);
pFun();
pFun = (Fun)*((int*)*(int*)(&b) + 1);
pFun();
pFun = (Fun)*((int*)*(int*)(&b) + 2);
pFun();
system("pause");
return 0;
}
