Bonjour a tous,

Je suis en train de m'entrainer pour mon rattrapage de C++ en refaisant l'epreuve que j'ai ratee. J'ai un peu de mal avec quelques notions, exemple:

Voici mon code:

Pion.cxx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
#include "Pion.h"
 
Pion::Pion(std::string coul, Position& p)
{
	type="pion";
	couleur=coul;
	symbole="P";
	valeur=1;
	Position* ptemp = new Position(p.getX(), p.getY());
	pos = ptemp;
}
Pion.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef PION
#define PION
 
#include "Piece.h"
#include "Position.h"
 
class Pion : Piece
{
	public:
		Pion(std::string, Position&); //Couleur, Position
};
#endif
Position.cxx
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "Position.h"
#include "stdio.h"
 
Position::Position(int X, int Y)
{
	x=X;
	y=Y;
}
 
Position::Position(const Position& P)
{
	x=P.x;
	y=P.y;
}
 
void Position::setX(int X)
{
	x=X;
}
 
void Position::setY(int Y)
{
	y=Y;
}
 
int Position::getX()
{
	return x;
}
 
int Position::getY()
{
	return y;
}
 
void Position::AffichePosition()
{
	std::cout<<"X="<<x<<" et Y="<<y;
}
 
std::ostream& operator << (std::ostream& ini, const Position& p)
{
	ini<<"X="<<p.x<<" et Y="<<p.y;
	return ini;
}
 
bool operator == (const Position &q, const Position& p)
{
	if ((p.x == q.x) && (p.y == q.y))
	{
		return true;
	}
	else
	{
		return false;
	}
}
Position.h
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
#ifndef POSITION
#define POSITION
 
#include <iostream>
 
class Position
{
	private:
	int x;
	int y;
 
	public:
	Position(int=0, int=0);
	Position(const Position&);
 
	int getX();
	int getY();
	void setX(int);
	void setY(int);
 
	void AffichePosition();
	friend std::ostream& operator << (std::ostream&, const Position&);
	friend bool operator == (const Position&, const Position&);
 
};
 
#endif
Pion herite de Piece, une classe abstraite, mais je ne pense pas que vous en ayez besoin pour me repondre.

Le compilateur me dit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Pion.cxx: In constructor ‘Pion::Pion(std::string, Position&)’:
Pion.cxx:10:8: error: invalid conversion from ‘Position*’ to ‘int’
Pion.cxx:10:8: error:   initializing argument 1 of ‘Position::Position(int, int)
et je refuse de le croire, pour la simple et bonne raison que p.getX() retourne bel et bien un int et non un Position*, comme vous pouvez le constater.

Si quelqu'un peut m'expliquer et me donner la solution...

Merci d'avance.