J'ai des difficultés à initialiser un vecteur de structures dans mon fichier d'en-tête.Vecteur C++ de discordance de structures
bins.h
#ifndef BINS_H
#define BINS_H
#include <vector>;
using namespace std;
struct bin
{
//...
bin() {
//...
}
};
class Bins {
public:
Bins();
vector<bin> getBins();
bin getBin(int i);
//...
private:
vector<bin> bins;
};
#endif
erreurs
(This is line: vector<bin> getBins();)
C:\...\bins.h:34: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
C:\...\bins.h:34: error: expected a type, got 'bin'
C:\...\bins.h:34: error: template argument 2 is invalid
(This is line: bin getBin(int i);)
C:\...\bins.h:35: error: 'bin' does not name a type
(This is line: vector<bin> bins;)
C:\...\bins.h:43: error: expected a type, got 'bin'
C:\...\bins.h:43: error: template argument 2 is invalid
Je n'ai pas beaucoup d'expérience avec C++; Cependant, j'ai utilisé des vecteurs de structures de cette façon auparavant sans aucun problème. Tout conseil est apprécié.
Modifier: Ceci est avec toutes les autres sections du code commentées.
Vous n'avez pas besoin d'un point-virgule après une directive préprocesseur – Marlon
'using namespace std;' dans un Le fichier d'en-tête est généralement considéré comme mauvais car il force la même chose sur tous ceux qui utilisent votre fichier d'en-tête sans qu'ils le sachent. – Flexo
Le problème est dans la partie de votre programme que vous * n'avez pas * publiée. S'il vous plaît faire une copie de votre programme, et supprimer chaque ligne qui n'a rien à voir avec ce problème. Veuillez copier-coller le programme résultant dans votre question. Voir http://sscce.org pour les raisons pourquoi publier un programme qui est * sorte-de-like * le programme défaillant n'aide pas. –