Je suis coincé! J'ai ce code de test très simple et je ne peux pas le compiler! J'ai utilisé le même code plusieurs fois auparavant mais maintenant ça ne marchera pas!
J'ai ce programme simpleerreur de compilation avec le vecteur en C++
#include <vector>
#include <iostream>
#include "Rswap.h"
using namespace std;
int main(){
Rswap test();
cin.get();
return 0;}
Et puis le rswap.cpp ...
#include <vector>
#include "Rswap.h"
Rswap::Rswap(){
V.push_back(9);
};
Et puis le rswap.h ...
#ifndef Rswap_h
#define Rswap_h
class Rswap{
public:
vector<int>V;
Rswap();
};
#endif
J'utilise Visual studio 2008. Y at-il quelque chose qui cloche qui est évident et que je suis absent ou que pourrait-il être! Comme je l'ai dit j'ai utilisé cet extrait sur plusieurs occasions différentes et je ne peux pas trouver de différence entre cela et ceux qui fonctionnent ... Et j'ai essayé les deux vector <int> V
; et vector <int> V;
sans aucune chance
Je l'ai regardé fixement aveuglément depuis un moment alors j'ai pensé qu'il est préférable de demander ici!
rswap.h(7) : error C2143: syntax error : missing ';' before '<'
rswap.h(7) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
rswap.h(7) : error C2238: unexpected token(s) preceding ';'
Question rapide - essayé 'vecteur V'? (Espace entre ">" et "V".) –
Stephen
Cela ne résoudra probablement pas votre problème, mais il est préférable d'inclure le '#include' dans le fichier rswap.h, là où vous en avez besoin - forcer tous les clients de rswap de savoir faire est impoli, et peut-être impraticable. –
Sans rapport avec votre problème, mais notez que 'Rswap test();' déclare une * fonction * renvoyant un objet 'Rswap'. Pour déclarer un objet 'Rswap', utilisez' Rswap test; '(pas de parenthèses). – Philipp