#include <iostream.h>
class Base
{
private:
int num1;
public:
Base():num1(10)
{
}
void SetNum() //当派生类继承它时,如果没有改写,那他所改的num1是基类的,而不是对应的派生类的
//因为它不能确定派生类中是否有函数内改写的变量,只能修改自己的,而这些函数内的
//成员变量也是已经全部在派生类中申请空间了(不论private或public)!!!!
//如果出现这样的接口,也就可以在派生类中改基类的私有数据成员了!
{
num1=30;
}
void fun1()
{
cout<<"Base "<<num1<<endl;
}
};
class Derived:public Base
{
int num1;
public:
Derived():num1(20)
{
}
void fun1()
{
cout<<"Derived "<<num1<<endl;
}
};
void main()
{
Derived derived;
derived.SetNum();
derived.fun1();
((Base)derived).fun1();
Base base;
Base *pbase=&base;
((Derived *)pbase)->fun1();//得到的值是一个乱值???
}