#include<iostream>
#include<cstring>
using namespace std;
class P{
char nameP[30];
public:
P(char *name="123"){strcpy(nameP,name);}
char*getName(){
return nameP;}
virtual char *getType(){
return "P";} };
class B:public P
{ char nameB[30];
public:
B(char*n1,char *n2):P(n1){strcpy(nameB,n2);}
char *getName(){return nameB;}
char*getType(){
return "B";} };
void showP(P *p){
cout<<p->getType()<<":"<<p->getName()<<endl;}
int main()
{
B b("book1","book2");
showP(&b);
cout<<b.getType()<<":"<<b.getName()<<endl;
}
程序运行后的结果是:
B:book1
B:book2
若基类定义的函数是:virtual char* getName(),则运行结果是:
B:book2