Liv*_*ing 1 c++ polymorphism pointers virtual-functions
我是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; }
};
Run Code Online (Sandbox Code Playgroud)
现在想象你有一个巨大的动物包,你看不到它们.你抓住其中一个把它扔到墙上.然后你听它的声音 - 告诉你它是什么样的动物:
set<Animal*> bagWithAnimals;
bagWithAnimals.insert(new Cat);
bagWithAnimals.insert(new Cow);
Animal* someAnimal = *(bagWithAnimals.begin());
someAnimal->throwAgainstWall();
someAnimal = *(bagWithAnimals.rbegin());
someAnimal->throwAgainstWall();
Run Code Online (Sandbox Code Playgroud)
你抓住第一只动物,把它扔在墙上,你听到"MEOW!" - 是的,那是猫.然后你抓住下一个,扔掉它,你听到"MOOO!" - 那是牛.这是多态性.
您还应该检查c ++中的多态性
如果你正在寻找好书,这里有很好的列表:em:The Definitive C++ Book Guide and List
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |