Bonjour ! J'ai déjà un bagage en programmation orientée objet, j'ai déjà suivi un an de cours de java.
Les questions qui suivent sont donc celles d'un débutant en C++. J'essaye de faire une annale d'exament sur la simulation de points dans l'espace Rn. J'ai mis l'annale en pièce jointe. Il s'agit du deuxième exercice : voici les questions qui me posent problème et mes tentatives :
J'ai du mal avec les fonctions amies et j'ai déjà un problème en mettant la calsse PointRn comme public.
J'ai tout fait même le constructeur de recopie, c'est la première fois que j'en ai un, je sais que ca sert à copier un objet ou faire des template.Ecrire une classe cannonique PointRn simulant les points de Rn avec:
deux attributs privés int dim et double* adr ,
- un constructeur,
- un destructeur,
- un constructeur de recopie,
- l'opérateur = .
Mais du coup :Munir la classe PointRn des opérateurs == , != , * , + en tant que fonctions amies.
- Comment on additionne/multiplie des points ?
- C'est quoi la différence d'== avec = ?
On me demande ensuite :
Dois-je l'écrire dans un deuxième fichier ?D'Ecrire une classe abstraite boule avec: deux attributs privés PointRn centre et double rayon , et une fonction membre bool contient(point p) .
Voici mon code :
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
58 #import<iostream> using namespace std; public class PointRn(){ private int dim; private double* adr; PointRn(int dim, double* adr){ cout << "Constructeur de PointRn.\n"; this.dim = dim; this.adr = adr; } PointRn(const PointRn &){ cout << "Constructeur de recopie de PointRn.\n"; } // Comment fait on un destructeur ? ~PointRn(){ cout << "Destructeur de PointRn.\n"; } PointRn operator = (PointRn, PointRn); // Comment on additionne/multiplie des points ? friend PointRn operator + (PointRn, PointRn); friend PointRn operator * (PointRn, PointRn); // C'est quoi la différence avec = ? friend bool operator == (PointRn, PointRn); friend bool operator != (PointRn, PointRn); } PointRn operator +(PointRn,PointRn){ } PointRn operator *(PointRn,PointRn){ } PointRn operator ==(PointRn,PointRn){ } PointRn operator !=(PointRn,PointRn){ return (); } int main(){ }
Partager