Salut Sting,
C'est sympa de te voir poster en C++ :)
Ca change de Java ;)
Quote:
dans le cadre d'un exo, je dois créer une classe générique Matrice(dont le paramètre de généricité sera la classe Pixel).
Pardonnes moi mais si "le paramètre de généricité" est connu d'avance alors ... ta classe Matrice n'est pas générique....
Il me semble que soit tu n'as pas tout dit sur l'énoncé, soit tu n'as pas bien compris, soit l'énoncé est mauvais.
Pourrais tu détailler un peu plus cet énoncé ?
Quote:
Cette classe aura comme méthodes : rotation, translation, homothétie qui permettent de faire des transformations géométriques sur un point
Même chose ici, ça ne va pas. rotation et translation pour un point ça peut se concevoir. Homothétie sur un point moi je ne vois pas. Ou alors faut que je retourne à l'école. C'est vrai que je n'y suis pas allé beaucoup :D
Je vais quand même essayer de t'aider un peu concrètement.
Suppose que tu as Pixel comme ça (je prends une structure c'est plus pratique pour écrire. Tu transposeras à classe sans difficulté. Idem si ça doit être en 3D ;) ))
struct Pixel
{
int x;
int y;
};
Ta class matrice pourrait avoir cette tête là pour la translation
class Matrice
{
private:
Pixel px;
public:
Pixel translation(VecteurTranslation);
};
avec
Pixel Matrice::translation(VecteurTranslation vt)
{
Pixel px_new = Pixel(px);
px_new.x = px.x + vt.x;
px_new.y = px.y + vt.y;
return px_new;
}
Je suis parti du principe que translation retourne un nouveau Pixel. Ca parait logique si la classe s'appelle Matrice. Mais l'énoncé peut voir ça autrement.
Je n'ai pas écrit une classe générique non plus pour aller plus vite. Mais c'est une formalité de mettre un template dans la déclaration.
Je n'ai pas mis de constructeur non plus. En fait la classe telle que tu présentes l'énnoncé devrait être une classe normale contenant uniquement des méthodes statiques qui elles devraient être génériques. Enfin il me semble ;)
Bref je ne t'ai donné qu'un point de départ, mais j'espère quand même que ça t'aidera à démarrer. Affine la question, précise nous l'énoncé surtout, écris un peu de code, et reviens parmi nous. On essaiera d'avancer :)
Salut Sting,
C'est sympa de te voir poster en C++ :)
Ca change de Java ;)
Pardonnes moi mais si "le paramètre de généricité" est connu d'avance alors ... ta classe Matrice n'est pas générique....
Il me semble que soit tu n'as pas tout dit sur l'énoncé, soit tu n'as pas bien compris, soit l'énoncé est mauvais.
Pourrais tu détailler un peu plus cet énoncé ?
Même chose ici, ça ne va pas. rotation et translation pour un point ça peut se concevoir. Homothétie sur un point moi je ne vois pas. Ou alors faut que je retourne à l'école. C'est vrai que je n'y suis pas allé beaucoup :D
Je vais quand même essayer de t'aider un peu concrètement.
Suppose que tu as Pixel comme ça (je prends une structure c'est plus pratique pour écrire. Tu transposeras à classe sans difficulté. Idem si ça doit être en 3D ;) ))
Ta class matrice pourrait avoir cette tête là pour la translation
avec
Je suis parti du principe que translation retourne un nouveau Pixel. Ca parait logique si la classe s'appelle Matrice. Mais l'énoncé peut voir ça autrement.
Je n'ai pas écrit une classe générique non plus pour aller plus vite. Mais c'est une formalité de mettre un template dans la déclaration.
Je n'ai pas mis de constructeur non plus. En fait la classe telle que tu présentes l'énnoncé devrait être une classe normale contenant uniquement des méthodes statiques qui elles devraient être génériques. Enfin il me semble ;)
Bref je ne t'ai donné qu'un point de départ, mais j'espère quand même que ça t'aidera à démarrer. Affine la question, précise nous l'énoncé surtout, écris un peu de code, et reviens parmi nous. On essaiera d'avancer :)