gpt4 book ai didi

c++ - 子对象作为参数

转载 作者:行者123 更新时间:2023-11-28 08:12:00 25 4
gpt4 key购买 nike

我想做如下的事情:

virtual void Aircraft::getImage(GenericImage&)=0;
void Drone::getImage(Image&);

在哪里ImageGenericImage 的子类DroneAircraft 的子类。

我怎样才能要求 Drone 类有一个 getImage(genericImage& 的任何子类) 方法,而编译器不会提示 genericImageImage 不是一回事吗?我希望最终用户/开发人员能够使用扩展 genericImage 的图像格式定义自己的无人机类,但无论他们创建什么,他们都必须提供从无人机获取图像的功能。

最佳答案

不要带出参数,只需返回图像即可。允许返回类型协变。这意味着,只要 Image 实际上公开派生自 GenericImage,就可以了:

virtual GenericImage& Aircraft::getImage() = 0;
virtual Image& Drone::getImage();

关于c++ - 子对象作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8812261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com