déclaration d'un vecteur en tant que membre de la classe

J'ai simple de la classe dans un fichier d'en-tête: un.hh

#ifndef a_hh
#define a_hh

class a
{
public: 
    int i;
    a()
    {
        i = 0;
    }

};
#endif

Puis j'ai un fichier:b.cc

#include <iostream> 
#include "a.hh"

using namespace std;

int main(int argc, char** argv)
{

    a obj;
    obj.i = 10;
    cout << obj.i << endl;
    return 0;
}
> 

Jusqu'à ce point, tout va bien.
Je compile le code et il compile bien.
Mais dès que j'ajoute un vecteur dans la classe:

#ifndef a_hh
#define a_hh

class a
{
public: 
    int i;
    vector < int > x;
    a()
    {
        i = 0;
    }

};
#endif

J'obtiens une erreur de compilation comme ci-dessous:

> CC b.cc
"a.hh", line 7: Error: A class template name was expected instead of vector.
1 Error(s) detected.

Quel est le problème de déclaration d'un vecteur ici en tant que membre?

  • Avez-vous #include <vector>?
  • Il semble que le compilateur ne reconnait pas le vecteur. Avez-vous ajouté le comprennent ? Et ajouter le std:: espace de noms de vecteur
  • .. et après, y compris, vous devez utiliser std::vector
  • Oui..même après que je reçois le même message d'erreur.
  • Qu'est-ce que a::a() en train de faire là? C'est inutile de qualification. Supprimer la a::.
  • Vous devriez en apprendre davantage sur et commencer à utiliser le constructeur de l'initialiseur de listes.

InformationsquelleAutor Vijay | 2012-09-03