|
|
//这是一个游戏调用的程序,改了一下。但是始终不明白他是如何运行的。请各位大大帮忙说明一下。已经困惑了小弟一个星期了
#include<iostream>
#include<conio.h>
#include<atlbase.h>
class A{
public:
int virtual go(int *h,int n)
{
if (n==0) return 0;
ATLTRACE2("ClassA:%i\n",*h);
*h=*h-5;
return (*h)*go(h,n-1);
};
};
class B:public A{
public:
int go(int *h,int n)
{
ATLTRACE2("ClassB: %i\n",*h);
return A::go(h,n);
};
};
void main()
{
B CB;
B *b=NULL;
b=&CB;
int i=100;
b->go(&i,5);
ATLTRACE2("%d\n",i);
}
//执行结果为:
ClassB: 100
ClassA:100
ClassB: 95
ClassA:95
ClassB: 90
ClassA:90
ClassB: 85
ClassA:85
ClassB: 80
ClassA:80
ClassB: 75
75 |
|