<分区>
让我们做一个简单的例子。假设我有一组 Number
对象,它们可以是偶数或奇数。
假设我想遍历这个集合并处理每个元素。该过程取决于元素的类型:偶数 或奇数。
示例:打印每个元素,这样:
如果
Number
是偶数,我有“This is an even number.”如果
Number
是奇数,我有“This is an odd number.”
但是,我稍后可能会决定,我希望仅偶数打印“偶数”。
因此,正如我们所见,这可以通过使用虚函数,用继承和多态来解决:
class Number {/*...*/}; // base class
class Even : public Number {/*...*/} // derived class
class Odd : public Number {/*...*/} // derived class
但是,我如何才能在流程中提供灵 active ,以便稍后执行不同的行为,如上例所示?另外,是否有继承和多态的替代方法?因为我不想仅仅因为特定的计算/过程而创建继承树。
最初的问题是根据对象的类型执行不同的数学模型,并且数学模型对于给定类型的对象不是唯一的(因为我打印偶数的方式不是唯一的)。
编辑: 有趣的是,这篇文章以很难说清所问内容为由关闭。下面几个回答的作者似乎不同意这一点,因为他们都能理解并回答我要找的东西。