Utiliser une classe en paramètres
Bonjour,
J'ai créé deux classes :
- une classe Matrix33
- une classe Vector3D.
Je souhaite créer à partir d'un Vector3D et d'un double une Matrix33.
Voici le code qui fonctionne en passant des "double" en argument du constructeur :
dans Vector3D.cpp
Code:
1 2 3 4
|
//Matrix33 M(axis,rotation_angle); // axis de classe Matrix33 et rotation_angle de type double
Matrix33 M(xa, ya, za, rotation_angle); // 4 de type double |
dans Matrix33.cpp
Code:
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
| //Matrix33::Matrix33(Vector3D axis, double rotation_angle)
Matrix33::Matrix33(double xa, double ya, double za, double rotation_angle)
{
double c;
double s;
//double xa;
//double ya;
//double za;
//xa = axis.GetX();
//ya = axis.GetY();
//za = axis.GetZ();
c = cos(rotation_angle);
s = sin(rotation_angle);
x1 = xa*xa + (1-xa*xa) * c;
x2 = xa*ya * (1-c) - za * s;
x3 = xa*za * (1-c) + ya * s;
y1 = xa*ya * (1-c) + za * s;
y2 = ya*ya + (1-ya*ya) * c;
y3 = ya*za * (1-c) - xa * s;
z1 = xa*za * (1-c) - ya*s;
z2 = ya*za * (1-c) + xa * s;
z3 = za*za + (1-za*za) * c; |
bien sûr, je souhaiterais passer un Vector3D en argument plutôt que trois doubles. Dans ce cas, j'obtiens l'erreur :
error C2061: erreur de syntaxe*: identificateur 'Vector3D'
Pourtant, intellisense reconnaît Vector3D.
Quelqu'un a une explication ?
Merci
A ce propos, dans Vector3D.h, j'ai #include "Matrix33.h"
et dans Matrix33.h, j'ai #include "Vector3D.h"
ça choque quelqu'un ?