c ++返回子类,其中函数返回指向超类的指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c ++返回子类,其中函数返回指向超类的指针相关的知识,希望对你有一定的参考价值。

我是c ++的新手。我附上了我所拥有的uml图,我的问题是返回一个定义为超类的类,但我实际上将返回一个扩展它的类。

在uml图中,有问题的超类是Booking,子类是Single和Sharing,它扩展了它。我在BookList类中有一个函数addBooking([...]),这就是我的问题所在。 enter image description here

我定义了Booking,然后是其他2个子类,它们扩展为Single和Sharing。我的问题是,我可以在BookingList.addBooking([....])函数中返回Single或Sharing类吗?我的两个子类都初始化了超类,例如Single就像这样初始化它:

Single::Single(Person c, QDate a, QDate d, Person g): Booking(c, a, d){[...]}
答案

是的你可以。 Single和Sharing是Booking类型,因此返回指向Single或Sharing实例的指针作为指向Booking类型实例的指针是完全合法的。

以上是关于c ++返回子类,其中函数返回指向超类的指针的主要内容,如果未能解决你的问题,请参考以下文章

C ++从函数返回指向数组的指针的正确方法

C 语言二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )

c复杂函数指针

C 语言字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )(代码

指针函数和函数指针

c语言函数返回字符串时必须要用指针吗?如果返回结构体呢?函数在返回那些类型值时必须要用指针?