C++ 如何循环浏览自己的类并打印它们?

C++ 如何循环浏览自己的类并打印它们?,c++,class,for-loop,oop,vector,C++,Class,For Loop,Oop,Vector,我在练习向量和类,因为如果我不写代码,我会很快忘记事情。在这里,我创建了一个名为“敌人”的类,我只给它一个公共属性,即std::string type;。然后,我开始制作一组名为nrone、nrtwo等的敌方物品,并指定每种物品的类型:兽人、地精等 然后我创建了一个函数,将它们添加到向量中,而不是直接使用push-back。我自己做的,是为了练习函数&通过引用传递。我知道这没有意义,因为它更容易使用推回 不管怎样,现在我试着通过向量循环并输出,理想情况下,兽人,地精,巨魔,食人魔,兽人到屏幕上,

我在练习向量和类,因为如果我不写代码,我会很快忘记事情。在这里,我创建了一个名为“敌人”的类,我只给它一个公共属性,即std::string type;。然后,我开始制作一组名为nrone、nrtwo等的敌方物品,并指定每种物品的类型:兽人、地精等

然后我创建了一个函数,将它们添加到向量中,而不是直接使用push-back。我自己做的,是为了练习函数&通过引用传递。我知道这没有意义,因为它更容易使用推回

不管怎样,现在我试着通过向量循环并输出,理想情况下,兽人,地精,巨魔,食人魔,兽人到屏幕上,但它不起作用。我的编译器说错误,运算符和敌人不匹配


发生了什么事?我尝试使用标准的std::vectornames{Joe,Jim,Jessy}使用远程foor循环;它工作了,但对我的敌人类不起作用。

您需要一个接受您的类的ostream函数

尝试将此的好友函数添加到敌方类中

阶级敌人 { 公众: std::字符串类型;
friend std::ostream&Operator问题不是循环而是在屏幕上打印。从打印单个敌人开始。错误和解决方案将是same@largest_prime_is_463035818天哪,非常感谢!我将屏幕上的打印更改为“敌人.类型”,并且它只包含公共成员的workedclass是一个结构
#include <iostream>
#include <string>
#include <vector>


class Enemy
{
public:
    std::string type;
};

void add_enemy(std::vector<Enemy>&enemies, Enemy enemy);

int main()
{
    
    Enemy nrone, nrtwo, nrthree, nrfour, nrfive;
    // I want to add these and keep them in a vector
    std::vector<Enemy> enemies;
    
    
    nrone.type = "Orc";
    nrtwo.type = "Goblin";
    nrthree.type = "Troll";
    nrfour.type = "Ogre";
    nrfive.type = "Orc";
    
    add_enemy(enemies, nrone);
    add_enemy(enemies, nrtwo);
    add_enemy(enemies, nrthree);
    add_enemy(enemies, nrfour);
    add_enemy(enemies, nrfive);
    
    std::cout << enemies.size() << std::endl;
    
    for(auto enemy: enemies)
        std::cout << enemy << " " << std::endl;
        
    
    return 0;
}

void add_enemy(std::vector<Enemy>&enemies, Enemy enemy)
{
        enemies.push_back(enemy);
}