派生类是基类的变种。所以基类指针引用派生类是安全的。当基类指针指向派生类的对象的时候,只能引用基类成员。如果像引用派生类中的特有成员,则必须把基类指针转化成派生类指针。
#include<iostream>
#include<cstring>
using namespace std;
class A_class
{
char name[20];
public:
void put_name(char * s)
{
strcpy_s(name,s);
}
void show_name()const
{cout<<name<<"\n";}
};
class B_class:public A_class
{
char phone_num[20];
public:
void put_phone(char * num)
{strcpy_s(phone_num,num);}
void show_phone()const
{cout<<phone_num<<"\n";}
};
int main()
{
A_class * A_p;
A_class A_obj;
B_class B_obj;
A_p=&A_obj;
A_p->put_name((char*)"Wang Liao hua");
A_p->show_name();
A_p=&B_obj;//基类指针指向派生类指针
A_p->put_name((char*)"chen ming");//调用基类成员函数
A_p->show_name();
B_obj.put_phone((char*)"3333_12345678");//调用派生类成员函数
((B_class*)A_p)->show_phone();//对基类指针进行

本文介绍了C++中基类与派生类的关系,强调了基类指针引用派生类对象的安全性。通过示例代码展示了如何使用基类指针调用派生类成员,解释了为什么需要进行类型转换。同时,通过Date和Datetime类的实例讲解了如何用派生类指针引用基类对象,并讨论了代码简洁性的重要性。
最低0.47元/天 解锁文章
1029

被折叠的 条评论
为什么被折叠?



