使用循环显示虚拟功能

Displaying Virtual Functions using loops

本文关键字:虚拟 功能 显示 循环      更新时间:2023-10-16

问题

我正在尝试了解多态性的虚拟功能。我想使用while循环多次从多态函数输出。

我在哪里放置循环?

我收到的输出只有3个输出,每个输出都来自NinjaMonster类。

代码

#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循环的特定原因。