C ++错误向量和类

时间:2014-04-18 10:54:35

标签: c++

我在尝试演示时遇到错误我的阵列可以帮助我吗? 错误:在'['标记|

之前预期的主要表达式

/ 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

谢谢

1 个答案:

答案 0 :(得分:1)

tab(Personnage[i].Show()是胡言乱语。

你可能意味着tab[i].Show();并且你只想调用该函数,而不是将其返回值传递给cout,因为它不会返回任何内容。