#include<iostream>
using namespace std;
class Base
{
public :
virtual void Print()
{
cout<<"Base Class print."<<endl;
}
};
class Derived1:public Base
{
public :
void Print()
{
cout<<"Derived1 Class Print"<<endl;
}
};
class Derived2:public Base
{
public :
void Print()
{
cout<<"Derived2 class Print\n";
}
};
int main()
{
Base b1,*pb;
Derived1 d1;
Derived2 d2;
Base &rb1=b1;//定义基类对象b1的引用rb1
pb=&b1;//基类指针指向基类对象b1
pb->Print();//用指针调用成员函数
rb1.Print();//用基类引用调用基类对象成员函数
pb=&d2; //基类指针指向派生类Derived2的对象d2
pb->Print(); //用基类指针pb调用派生类虚函数
Base &rb2=d1; //定义派生类对象d1的基类引用rb2
rb2.Print(); //用基类引用rb2调用派生类对象d1的成员函数
return 0 ;
}
using namespace std;
class Base
{
public :
virtual void Print()
{
cout<<"Base Class print."<<endl;
}
};
class Derived1:public Base
{
public :
void Print()
{
cout<<"Derived1 Class Print"<<endl;
}
};
class Derived2:public Base
{
public :
void Print()
{
cout<<"Derived2 class Print\n";
}
};
int main()
{
Base b1,*pb;
Derived1 d1;
Derived2 d2;
Base &rb1=b1;//定义基类对象b1的引用rb1
pb=&b1;//基类指针指向基类对象b1
pb->Print();//用指针调用成员函数
rb1.Print();//用基类引用调用基类对象成员函数
pb=&d2; //基类指针指向派生类Derived2的对象d2
pb->Print(); //用基类指针pb调用派生类虚函数
Base &rb2=d1; //定义派生类对象d1的基类引用rb2
rb2.Print(); //用基类引用rb2调用派生类对象d1的成员函数
return 0 ;
}