【发布时间】:2011-01-11 06:50:54
【问题描述】:
好的 - 这可能是一个非常愚蠢的问题,但它一直困扰着我。
有没有一种语言
class Animal;
class Ape : public Animal
{...}
void doStuff(Animal* animalPtr)
{
cout << "doing animal stuff" << endl;
}
void doStuff(Ape* apePtr)
{
cout << "doing ape stuff" << endl;
}
Animal *ape = new Ape();
doStuff(ape);
会产生 "doing ape stuff" 吗? (请耐心等待我使用 C++ 语法)
为了澄清,我想要“一个接受参数并根据参数类型对其进行操作的函数”。
这有意义吗?当然,作为开发人员,您需要小心,因为看起来像 Animal 指针的实例实际上可能会调用 Ape 代码,因为在运行时它是被指向的 Ape 实例。
【问题讨论】:
标签: c++ oop polymorphism language-design