Bonjour à tous !
J'ai actuellement un devoir consacrer sur les exceptions , je l'ai fais mais je voudrais avoir un avis sur vous ! merci beaucoup ! Je sais pas si l'exercice constitue bien à mon devoir et mon programme ! ^^

voiçi mon cours à faire :

Si une personne n'existe pas, on veut pourvoir afficher un message d'erreur et retourner à la demande du nom de la personne.Si elle existe,on veut pouvoir récupérer ses caractéristiques.Cela est vrai que la personne soit un enseignant, un étudiant ou un étudiant_enseignant.
Définir l'exception try/catch/throw permettant de gérer ces deux cas dans la classe Personne et modifier les fonctions membres des quatres classes afin que l'exception se propage correctement...


voiçi maintenant mon programme actuellement que j'ai fais :

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
#include <iostream>
#include <stdio.h>
using namespace std;
 
const int DefaultSize = 10;
 
class Personne
{
public:
	//constructeurs
	Personne(int itsSize = DefaultSize );
	Personne(const Personne &rns);
	~Personne() { delete [] pType;}
 
 
	//operateurs
	Personne& operator=(const Personne&);
	int& operator[] (int offSet);
	const int& operator[] (int offSet) const;
 
	//méthodes d'accès
	int GetitsSize() const { return itsSize; }
 
	//fonction amie
	friend ostream& operator<< (ostream&, const Personne&);
 
	//définit les classes d'exception
	class xEtudiant{};
	class xEnseignant{};
	class xEtudiant_Enseignant{};
	private:
		int *pType;
		int itsSize;
};
 
int& Personne::operator [] (int offSet)
{
	int size = GetitsSize();
	if (offSet >= 0 && offSet < GetitsSize())
	{
		return pType[offSet];
	}
	throw xEtudiant();
	{
		return pType[0]; //conforme MFC
	}
}
 
const int& Personne::operator [] (int offSet) const
{
	int mysize = GetitsSize();
	if(offSet >= 0 && offSet < GetitsSize())
	{
		return pType[offSet];
	}
	throw xEtudiant();
	{
		return pType[0]; //conforme MFC
	}
}
 
Personne::Personne(int size):
itsSize(size)
{
	if ( size == 0)
		throw xEnseignant();
	if ( size < 10)
		throw xEtudiant_Enseignant();
	if ( size > 30000)
		throw xEtudiant();
 
	pType = new int[size];
	for(int i = 0;i < size; i++)
	{
			pType[i] = 0;
	}
}
 
int main()
{
	try
	{
		Personne intPersonne(0);
		for (int j = 0; j < 100; j++)
		{
			intPersonne[j] = j;
			cout << "intPersonne[" <<j <<"] ok..."<< endl;
		}
	}
	catch ( Personne::xEtudiant)
	{
		cout << "Impossible de traiter votre entrée!" << endl;
	}
	catch ( Personne::xEnseignant)
	{
		cout << " cette personne n'existe pas..."<<endl;
	}
	catch (Personne::xEtudiant_Enseignant)
	{
//		<< " Cette personne existe vraiment..."<< endl;
	}
	catch (...)
	{
		cout << " une erreur s'est produit..." << endl;
	}
	cout << "FIN." << endl;
 
	return 0;
	getchar();
}
merci soyez compréhensif car je suis débutante !