我在尝试演示时遇到错误我的阵列可以帮助我吗? 错误:在'['标记|
之前预期的主要表达式/ blablablablablablablablablablablablablablablablablablablablablablablablablablablabla /
Main.cpp的
#include <iostream>
#include <vector>
#include "Personnage.h"
using namespace std;
int main()
{
vector<Personnage> tab;
tab.push_back(Personnage("MP5", 25));
tab.push_back(Personnage("MP7", 30));
tab.push_back(Personnage("MP4A1", 45));
for (int unsigned i = 0; i < tab.size(); i++)
{
tab[i].Attaque(tab[i + 1]);
}
for (int unsigned i = 0; i < tab.size(); i++)
{
cout << tab(Personnage[i].Show() << endl;
}
}
Personnage.cpp
#include <iostream>
#include <string>
#include "Personnage.h"
using namespace std;
Personnage::Personnage(string nomArme, int degatsArme) : c_vie(100), c_arme(nomArme), c_degats(degatsArme)
{
}
Personnage::~Personnage()
{
}
void Personnage::vivant()
{
if (c_vie > 0){
c_death_life = "Vivant";
} else {
c_death_life = "Mort";
}
}
void Personnage::RecevoirDegats(int Degats)
{
c_vie -= Degats;
if (c_vie < 0)
c_vie = 0;
}
void Personnage::ChangeWeapon(string name, int Degats)
{
c_arme = name;
c_degats = Degats;
}
void Personnage::Attaque(Personnage &cible)
{
cible.RecevoirDegats(c_degats);
}
void Personnage::Show()
{
vivant();
cout << "Vie: " << c_vie << endl;
cout << "Arme: " << c_arme << endl;
cout << "Degats Arme: " << c_degats << endl;
cout << "Vie/Mort: " << c_death_life << endl << endl;
}
Personnage.h
#ifndef PERSONNAGE_H_INCLUDED
#define PERSONNAGE_H_INCLUDED
#include <iostream>
#include <string>
class Personnage
{
public:
Personnage();
Personnage(std::string nomArme, int degatsArme);
~Personnage();
void vivant();
void ChangeWeapon(std::string name, int Degats);
void RecevoirDegats(int vie);
void Attaque(Personnage &cible);
void Show();
protected:
int c_vie;
int c_degats;
std::string c_arme;
std::string c_death_life;
};
#endif // PERSONNAGE_H_INCLUDED
谢谢
答案 0 :(得分:1)
tab(Personnage[i].Show()
是胡言乱语。
你可能意味着tab[i].Show()
;并且你只想调用该函数,而不是将其返回值传递给cout
,因为它不会返回任何内容。