Code
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
void tt1() {tt2();}
void tt2() {cout<<"A:tt2"<<endl;}
protected:
int m_test;
};
class B: public A
{
void tt2() { cout<<"B:tt2"<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
B b;
b.tt1();
return 0;
}
程序会输出什么呢?
A:tt2,而不是B:tt2,就是说B 虽然覆盖了tt1, 但B调用tt2时候,仍会调用A中tt2。