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