首页 > 解决方案 > 使用循环显示虚拟功能

问题描述

问题

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

我在哪里放置循环?

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

代码

#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"); 
}

标签: c++polymorphism

解决方案


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

你到底在期待什么?困扰你的是什么?

此外,这并不多,但是关于您做事的方式,您应该使用for循环,除非循环有特定原因while


推荐阅读