#include <iostream>
#include <string>
using namespace std;
class String
{
char *name;
int length;
public:
String(char *str)
{
length=strlen(str);
name=new char[length+1];
strcpy(name,str);
}
void show()
{
cout<<name<<endl;
}
};
class de_string:public String
{
int age;
public:
de_string(char *str, int age):String(str)
{
de_string::age=age;
}
void show()
{
String::show();
cout<<"the age is:"<<age<<endl;
}
};
int main()
{
String s1("tony"),*ptr1;
de_string s2("jack",20),*ptr2;
ptr1=&s1;
ptr1->show();
ptr1=&s2; //将ptr1指向String类的派生类de_string的对象s2
ptr1->show(); //调用s2对象所属的基类的成员函数show()
ptr2=&s2;
ptr2 -> show();
return 0;
}