为什么要把子类的指针赋值给父类???
发布网友
发布时间:2024-09-27 04:19
我来回答
共1个回答
热心网友
时间:2天前
我个人估计一年或者几年之后你又会问“如何隐藏类的定义,让用户看不到类的实现细节”或者“如何让用户无法修改类的私有成员”。
一个办法就是用子类型多态。
在父类定义所有需要用到的接口(公共成员函数)和允许用户看到的数据,把父类暴露给用户。而在子类中定义实现细节,用户不知道子类的定义——甚至不知道子类叫什么名字,将来哪怕完全替换掉子类的实现,换成另一个子类,用户也会一无所知。最后需要做的就是写一个函数来返回“子类指针”了——因为我们不想让用户知道子类的任何信息,所以函数不能不能直接声明成返回子类对象或者返回“子类指针”,正确的做法是声明成返回父类指针,而实际上,却是把子类指针转换成父类指针然后返回