【发布时间】:2019-05-27 02:17:09
【问题描述】:
我希望你能帮助我,因为我正在努力改进我的 C++ 继承概念。首先,我有以下对象层次结构:
具有两个子类的基类“Image”:PNG 和 JPG(每个都有自己的方法)。
我在 PNG 类中编写了一个方法,该方法(以模拟方式)删除 alpha 通道(它只是打印“已删除 Alpha 通道”)。
话虽如此,我想编写一个方法,该方法将一个包含许多指向图像对象(可以是 JPG 或 PNG)的指针的数组作为输入,并且只删除那些是 PNG 的 alpha 通道。由于在 C++ 中这不是一个好的做法,因此询问对象的类型(或者我相信),这是遍历图像数组的最佳方式(请记住,它可以用 PNG 或 JPG 对象填充)和仅删除 PNG 对象的 alpha 通道?我应该在哪个类中编写该方法?父母还是孩子?
希望我的解释正确,并在此先感谢您。
【问题讨论】:
-
默认情况下不执行任何操作并在 PNG 子类中重新实现的虚拟方法。这就是虚方法的全部意义所在。
-
请注意,您不能为此使用 objects 数组;你必须使用 pointers 的数组。
-
你是对的,谢谢,我刚刚编辑了它:D @PeteBecker
标签: c++ inheritance methods hierarchy