Bien, alors, j'aimerais bien trouver moi-même où est l'erreur, mais je n'y arrive pas... Et malgré les heures passées à écrire du code, j'ai toujours l'impression d'être au niveau débutant!

J'ai une classe Hexagon qui contient un pointeur vers une classe YPiece. Une YPiece contient deux Hexagon.

Voilà la déclaration de Hexagon:
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
#include <vector>
#include <boost/array.hpp>
#include "PointMat.h"
class YPiece;
 
typedef boost::array<double,6> DoubleArray6;
 
class Hexagon{
 
private:
	int m_Index;
	const YPiece*  m_YPce;
	DoubleArray6 m_Lengths;
	std::vector<PointMatH> m_Vertices;
 
public:
	inline Hexagon(const Hexagon& p_Hex);
	Hexagon(int, const YPiece*, const double, const double, const double);
};
le cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#include "Hexagon.h"
#include "YPiece.h"
inline Hexagon::Hexagon(const Hexagon& p_Hex):
	m_Index(p_Hex.m_Index), m_YPce(p_Hex.m_YPce), m_Lengths(p_Hex.m_Lengths), m_Vertices(p_Hex.m_Vertices){};
Hexagon::Hexagon(int p_Index, const YPiece* p_YPce, const double p_L1, const double p_L3, const double p_L5):
	m_Index(p_Index),m_YPce(p_YPce){
...}
Voilà celle de YPiece:
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
#include <string>
#include <vector>
#include "Hexagon.h"
#include "Collar.h"
typedef std::vector<Collar*> CollarArray;
 
class YPiece{
private:
	std::string m_Name;
	Hexagon m_Hex1;
	Hexagon m_Hex2;
 
public:
	CollarArray m_Collars;
 
	YPiece(const std::string& p_Name):m_Name(p_Name){m_Collars.reserve(3);};
	YPiece(const YPiece& p_YPce): m_Name(p_YPce.m_Name),m_Hex1(p_YPce.m_Hex1),m_Hex2(p_YPce.m_Hex2),m_Collars(p_YPce.m_Collars){};
 
	void SetYPieceHexagons(){};
le cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include "YPiece.h"
#include "Hexagon.h"
void YPiece::SetYPieceHexagons(){
	double l_Length1((m_Collars.at(0)->GetLength())/2);
	double l_Length3((m_Collars.at(1)->GetLength())/2);
	double l_Length5((m_Collars.at(2)->GetLength())/2);
	Hexagon H1(1, this, l_Length1, l_Length3, l_Length5);
	Hexagon H2(2, this, l_Length1, l_Length3, l_Length5);
}
C'est le "this" de SetYPieceHexagons() qui pose problème, je crois... Le but est d'en faire le pointeur m_YPce dont Hexagon a besoin.
Si quelqu'un a une idée...