C'est bizarre. J'ai créé un vecteur très bien dans une classe mais je ne peux pas le créer dans une autre classe. Il est une représentation de ce que j'ai:C++ ne peut pas créer de vecteur
main.h
#include <Windows.h>
#include <ShellAPI.h>
#include <vector>
#include <string>
#include <iostream>
#include "taco.h"
class MyClass
{
public:
int someint;
vector<int> myOrder;
};
taco.h
#include <vector>
class OtherClass
{
public:
vector<int> otherOrder;
};
Et je reçois des erreurs de compilation en ce qui concerne la déclaration de vecteur taco.h:
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
Qu'est-ce qui me manque ici? Je peux décommenter cette deuxième déclaration de vecteur et il compile bien.
Cela me porte à croire que certains .h a 'using namespace std;' en elle quelque part, ce qui est généralement une mauvaise idée. 'using 'ne devrait jamais être fait dans les en-têtes, car il gâche les espaces de noms pour tout fichier .cpp qui inclut directement ou indirectement cet en-tête. Laissez 'using' pour les fichiers source seulement, où les effets sont locaux. –