使用循环显示虚拟功能
Displaying Virtual Functions using loops
问题
我正在尝试了解多态性的虚拟功能。我想使用while
循环多次从多态函数输出。
我在哪里放置循环?
我收到的输出只有3个输出,每个输出都来自Ninja
和Monster
类。
代码
#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
using namespace std;
class Enemy
{
public:
virtual void attack()
{
}
};
class Ninja: public Enemy
{
public:
void attack()
{
cout << "Ninja attack -" << endl;
}
};
class Monster : public Enemy
{
public:
void attack()
{
cout << "Monster eat -" << endl;
}
};
int main()
{
Ninja n;
Monster m;
Enemy *enemy1 = &n;
Enemy *enemy2 = &m;
int i = 0;
while (i <= 2)
{
enemy1->attack();
enemy2->attack();
i++;
}
system("pause");
}
您编写的代码产生了预期的结果。
您到底期望什么?是什么困扰你?
另外,这并不多,但是关于您的操作方式,您应该使用for
循环,除非有while
循环的特定原因。
相关文章:
- 如何在C++中获得"静态纯虚拟"功能?
- std::is_trivially_copyable_v 关于虚拟功能
- 隐藏重载虚拟功能的模板化访客:SFINAE 在使用?
- 为什么我无法覆盖虚拟功能?
- 虚拟功能不起作用
- 如果在创建对象时创建了 VPTR,那么为什么具有虚拟功能的类的大小在 32 位系统上为 4,在 64 位机器上为 8
- 虚拟功能如何影响static_cast?
- __declspec(属性)和虚拟功能
- 实现来自第三方类的虚拟功能
- 消除未使用的虚拟功能
- 为什么虚拟继承即使不涉及虚拟功能也需要 vtable?
- C 虚拟功能的输出
- 抽象类 A 由类 C 继承"through"类 B "intermediary"。如何声明虚拟功能?
- 虚拟功能是否不太可能导致堆栈溢出
- 使用继承和虚拟功能应用五个规则
- 两个派生类(十六进制 二进制)的虚拟功能
- 虚拟功能编译器优化C
- 虚拟功能指针指向派生类中的函数
- 隐藏的过载虚拟功能OSX QT4
- 使用虚拟功能在C 中进行猜测