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();
} |
Partager