Bonjour,

Je suis loin d'étre un expert en C++ et j'aurais besoin d'une info simple.

J'ai deux objets, "probleme" et "solution", un probleme possède plusieurs solution et une solution correspond à un problème. J'ai donc deux fichiers header que voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
#pragma once 
#include "Probleme.h"
#include <vector>
using namespace std;
 
 
 
class Solution
{
private:
	Probleme* probleme;
	vector<Tache*> taches;
	int fitness;
public:   
	Solution(void);
	Solution(Probleme*);
	~Solution(void);
	Probleme* Solution::getProbleme();
	void Solution::addTache(Tache*);
	void Solution::setTaches(vector<Tache*>);
	vector<Tache*> Solution::getTaches();
	void Solution::calculFitness();
	int Solution::getFitness();
	void Solution::setFitness(int fitness);
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
#pragma once
#include "Solution.h"
#include <vector>
using namespace std;
 
class Probleme
{
private:
	vector<Tache*> taches;
	int dateFin;
	int nbTaches;
	vector<Solution*> population;
public:
	Probleme(void);
	Probleme(int);
	~Probleme(void);
 
	void Probleme::addSolution(Solution* solution);
	void Probleme::trieElitiste(vector<Solution*>);
	vector<Solution*> Probleme::selection();
	Solution* Probleme::getBestSolution();
 
	void Probleme::addTache(Tache*);
	vector<Tache*> Probleme::getTaches();
 
	void Probleme::setDateFin(int);
	int Probleme::getDateFin();
 
	void Probleme::setNbTaches(int);
	int Probleme::getNbTaches();
};
Le compilateur m'affiche une erreur problement à cause du fait que j'inclus "probleme.h" dans "solution.h" mais également l'inverse.

Voici une partie de l'erreur

1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(11) : error C2143: erreur de syntaxe*: absence de ';' avant '*'
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(11) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(11) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(16) : error C2061: erreur de syntaxe*: identificateur 'Probleme'
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(16) : error C2535: 'Solution::Solution(void)'*: fonction membre déjà définie ou déclarée
1> c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(15)*: voir la déclaration de 'Solution::Solution'
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(18) : error C2143: erreur de syntaxe*: absence de ';' avant '*'
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(18) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(18) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\users\dougui\workspace\c\projet ag\projet ag\solution.h(18) : warning C4183: 'getProbleme'*: type de retour manquant*; fonction membre retournant 'int' prise par défaut
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(11) : error C2664: 'Solution::Solution(const Solution &)'*: impossible de convertir le paramètre 1 de 'int *' en 'const Solution &'
1> Raison*: impossible de convertir de 'int *' en 'const Solution'
1> Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(12) : warning C4018: '<'*: incompatibilité signed/unsigned
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(42) : warning C4244: 'argument'*: conversion de 'double' en 'int', perte possible de données
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(43) : error C2664: 'Solution::Solution(const Solution &)'*: impossible de convertir le paramètre 1 de 'Probleme *' en 'const Solution &'
1> Raison*: impossible de convertir de 'Probleme *' en 'const Solution'
1> Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(49) : warning C4244: 'argument'*: conversion de 'double' en 'int', perte possible de données
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(49) : warning C4244: 'argument'*: conversion de 'double' en 'int', perte possible de données
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(49) : warning C4244: 'argument'*: conversion de 'double' en 'int', perte possible de données
1>c:\users\dougui\workspace\c\projet ag\projet ag\main.cpp(53) : warning C4244: 'argument'*: conversion de 'double' en 'int', perte possible de données
Que dois je faire pour régler ça?