我是c ++的新手。我附上了我所拥有的uml图,我的问题是返回一个定义为超类的类,但我实际上将返回一个扩展它的类。
在uml图中,有问题的超类是Booking,子类是Single和Sharing,它扩展了它。我在BookList类中有一个函数addBooking([...]),这就是我的问题所在。
我定义了Booking,然后是其他2个子类,它们扩展为Single和Sharing。我的问题是,我可以在BookingList.addBooking([....])函数中返回Single或Sharing类吗? 我的两个子类都初始化了超类,例如Single就像这样初始化它:
Single::Single(Person c, QDate a, QDate d, Person g): Booking(c, a, d){[...]}
答案 0 :(得分:1)
是的,你可以。 Single和Sharing是Booking类型,因此返回指向Single或Sharing实例的指针作为指向Booking类型实例的指针是完全合法的。