使用循环显示虚函数

时间:2019-03-16 21:15:44

标签: c++ polymorphism

问题

我正在尝试理解多态中的虚函数。我想使用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"); 
}

1 个答案:

答案 0 :(得分:0)

您编写的代码会产生预期的结果。

您究竟期望什么?是什么困扰着你?

这也不是很多,但是对于您的处理方式,应该使用for循环,除非有while循环的特定原因。