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
dans Matrix33.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
bien sûr, je souhaiterais passer un Vector3D en argument plutôt que trois doubles. Dans ce cas, j'obtiens l'erreur :
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 //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;
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 ?
Partager