我对 C++ 的这些重要功能很陌生,我已经在这里阅读了有关这些主题的一些问题/答案,并用谷歌搜索了一些文档。但我仍然对此感到困惑......
如果有人能给我建议一些好的在线教程或书籍章节,让我轻松而缓慢地理解这个概念,并从基础开始,那就太好了。
另外,如果有人知道一些现有的练习材料,那就太好了。
这是我听过的对多态性的最好解释:
这个世界上有很多动物。他们中的大多数都会发出一些声音:
class Animal
{
public:
virtual void throwAgainstWall() { };
};
class Cat : public Animal
{
public:
void throwAgainstWall(){ cout << "MEOW!" << endl; }
};
class Cow : public Animal
{
public:
void throwAgainstWall(){ cout << "MOOO!" << endl; }
};
现在想象一下,你有一个装着动物的大袋子,但你看不到它们。你只需抓住其中一个并将其扔到墙上即可。然后你听它的声音——这会告诉你它是什么动物:
set<Animal*> bagWithAnimals;
bagWithAnimals.insert(new Cat);
bagWithAnimals.insert(new Cow);
Animal* someAnimal = *(bagWithAnimals.begin());
someAnimal->throwAgainstWall();
someAnimal = *(bagWithAnimals.rbegin());
someAnimal->throwAgainstWall();
你抓住第一只动物,把它扔到墙上,你会听到“喵!” - 是的,那是猫。然后你抓住下一个,把它扔出去,你会听到“哞!”的声音。 - 那是牛。这就是多态性。
您还应该检查C++中的多态性
如果您正在寻找好书,这里有一些不错的书单:权威 C++ 书籍指南和列表
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)