programmation objet, questions d'examen (de l'aide SVP)
2 réponses
stephane
Ok c'est la dernière fois que vous verrez ces lignes de code c'est promis...
Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des
questions concernant l'épreuve de l'année passée d'où provient ce code
justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son utilisation
dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil!
(si jamais les 2 questions sont en bas du post)
//voici la surcharge de l'opérateur +
Ecrivez le code de la surcharge de l'opérateur + de la classe Thoraire
Problème 4 (10pt)
Complétez le code du programme principal ci-dessous pour calculer l'horaire
annuel (résultat de la fusion des horaires du 1er semestre et 2ème semestre.
Votre code doit traiter les exceptions levées par l'opération de fusion. Le
traitement de l'exception sera le simple envoi d'un message sur la console.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Azeau
stephane wrote:
Ok c'est la dernière fois que vous verrez ces lignes de code c'est promis... Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des questions concernant l'épreuve de l'année passée d'où provient ce code justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son utilisation dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil! (si jamais les 2 questions sont en bas du post) //voici la surcharge de l'opérateur +
L'algo me semble OK (concaténation de vecteurs) mais j'ai 3 remarques :
(1) ce code ne compile pas car il tente de modifier un objet dans une de ses méthodes const (ce qui est logique car quand on écrit horaireSemestre1 + horaireSemestre2, on ne veut pas que horaireSemestre1 soit modifié). La solution dans un tel cas c'est de créer un 3ème objet Thoraire résultat dans l'operator+.
(2) le test d'arrêt "m_nbCases>CcasesMax" me semble erroné (quand m_nbCases vaut CcasesMax, m_cases[m_nbCases] va au delà de la capacité du tableau)
(3) La levée de Toverflow *dans* la boucle fait que le tableau a déja été partiellement modifié quand l'exception est levée alors que l'on aurait pu vouloir conserver l'objet dans son état d'origine en cas d'erreur. NB : cette remarque n'a que peu d'intérêt dans le cas présent car il ne faut de toutes façons pas modifier l'objet
//et son utilisation dans le main Thoraire horaireSemestre1("Lambert");
cout<<"depassement de capacity de l'horaire"<<endl; }
catch(TenseignantError){
cout<<"le nom de l'enseignant ne correspond pas"<<endl; }
Cela me semble correct. Pour info, les exceptions sont généralement rattrapées par référence et non pas par copie.
Par simple curiosité, de quel examen s'agit-il ?
stephane wrote:
Ok c'est la dernière fois que vous verrez ces lignes de code c'est promis...
Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des
questions concernant l'épreuve de l'année passée d'où provient ce code
justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son utilisation
dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil!
(si jamais les 2 questions sont en bas du post)
//voici la surcharge de l'opérateur +
L'algo me semble OK (concaténation de vecteurs) mais j'ai 3 remarques :
(1) ce code ne compile pas car il tente de modifier un objet dans une de
ses méthodes const (ce qui est logique car quand on écrit
horaireSemestre1 + horaireSemestre2, on ne veut pas que horaireSemestre1
soit modifié).
La solution dans un tel cas c'est de créer un 3ème objet Thoraire
résultat dans l'operator+.
(2) le test d'arrêt "m_nbCases>CcasesMax" me semble erroné (quand
m_nbCases vaut CcasesMax, m_cases[m_nbCases] va au delà de la capacité
du tableau)
(3) La levée de Toverflow *dans* la boucle fait que le tableau a déja
été partiellement modifié quand l'exception est levée alors que l'on
aurait pu vouloir conserver l'objet dans son état d'origine en cas d'erreur.
NB : cette remarque n'a que peu d'intérêt dans le cas présent car il ne
faut de toutes façons pas modifier l'objet
//et son utilisation dans le main
Thoraire horaireSemestre1("Lambert");
Ok c'est la dernière fois que vous verrez ces lignes de code c'est promis... Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des questions concernant l'épreuve de l'année passée d'où provient ce code justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son utilisation dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil! (si jamais les 2 questions sont en bas du post) //voici la surcharge de l'opérateur +
L'algo me semble OK (concaténation de vecteurs) mais j'ai 3 remarques :
(1) ce code ne compile pas car il tente de modifier un objet dans une de ses méthodes const (ce qui est logique car quand on écrit horaireSemestre1 + horaireSemestre2, on ne veut pas que horaireSemestre1 soit modifié). La solution dans un tel cas c'est de créer un 3ème objet Thoraire résultat dans l'operator+.
(2) le test d'arrêt "m_nbCases>CcasesMax" me semble erroné (quand m_nbCases vaut CcasesMax, m_cases[m_nbCases] va au delà de la capacité du tableau)
(3) La levée de Toverflow *dans* la boucle fait que le tableau a déja été partiellement modifié quand l'exception est levée alors que l'on aurait pu vouloir conserver l'objet dans son état d'origine en cas d'erreur. NB : cette remarque n'a que peu d'intérêt dans le cas présent car il ne faut de toutes façons pas modifier l'objet
//et son utilisation dans le main Thoraire horaireSemestre1("Lambert");
cout<<"depassement de capacity de l'horaire"<<endl; }
catch(TenseignantError){
cout<<"le nom de l'enseignant ne correspond pas"<<endl; }
Cela me semble correct. Pour info, les exceptions sont généralement rattrapées par référence et non pas par copie.
Par simple curiosité, de quel examen s'agit-il ?
stephane
Merci bcp pour ton temps. En fait c'est un exa d'une école supérieure d'informatique de gestion en Suisse. Il y en a 9 en tous et celui-ci c'est le 7ème, intitulé "encapsulation".
"Olivier Azeau" a écrit dans le message de news: sbfQd.23939$
stephane wrote:
Ok c'est la dernière fois que vous verrez ces lignes de code c'est promis... Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des questions concernant l'épreuve de l'année passée d'où provient ce code justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son utilisation dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil! (si jamais les 2 questions sont en bas du post) //voici la surcharge de l'opérateur +
L'algo me semble OK (concaténation de vecteurs) mais j'ai 3 remarques :
(1) ce code ne compile pas car il tente de modifier un objet dans une de ses méthodes const (ce qui est logique car quand on écrit horaireSemestre1 + horaireSemestre2, on ne veut pas que horaireSemestre1 soit modifié). La solution dans un tel cas c'est de créer un 3ème objet Thoraire résultat dans l'operator+.
(2) le test d'arrêt "m_nbCases>CcasesMax" me semble erroné (quand m_nbCases vaut CcasesMax, m_cases[m_nbCases] va au delà de la capacité du tableau)
(3) La levée de Toverflow *dans* la boucle fait que le tableau a déja été partiellement modifié quand l'exception est levée alors que l'on aurait pu vouloir conserver l'objet dans son état d'origine en cas d'erreur. NB : cette remarque n'a que peu d'intérêt dans le cas présent car il ne faut de toutes façons pas modifier l'objet
//et son utilisation dans le main Thoraire horaireSemestre1("Lambert");
cout<<"depassement de capacity de l'horaire"<<endl; }
catch(TenseignantError){
cout<<"le nom de l'enseignant ne correspond pas"<<endl; }
Cela me semble correct. Pour info, les exceptions sont généralement rattrapées par référence et non pas par copie.
Par simple curiosité, de quel examen s'agit-il ?
Merci bcp pour ton temps. En fait c'est un exa d'une école supérieure
d'informatique de gestion en Suisse. Il y en a 9 en tous et celui-ci c'est
le 7ème, intitulé "encapsulation".
"Olivier Azeau" <read.my.name.and.email.to.firstname@lastname.com> a écrit
dans le message de news: sbfQd.23939$Of5.15987@nntpserver.swip.net...
stephane wrote:
Ok c'est la dernière fois que vous verrez ces lignes de code c'est
promis...
Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des
questions concernant l'épreuve de l'année passée d'où provient ce code
justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son
utilisation
dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil!
(si jamais les 2 questions sont en bas du post)
//voici la surcharge de l'opérateur +
L'algo me semble OK (concaténation de vecteurs) mais j'ai 3 remarques :
(1) ce code ne compile pas car il tente de modifier un objet dans une de
ses méthodes const (ce qui est logique car quand on écrit horaireSemestre1
+ horaireSemestre2, on ne veut pas que horaireSemestre1 soit modifié).
La solution dans un tel cas c'est de créer un 3ème objet Thoraire résultat
dans l'operator+.
(2) le test d'arrêt "m_nbCases>CcasesMax" me semble erroné (quand
m_nbCases vaut CcasesMax, m_cases[m_nbCases] va au delà de la capacité du
tableau)
(3) La levée de Toverflow *dans* la boucle fait que le tableau a déja été
partiellement modifié quand l'exception est levée alors que l'on aurait pu
vouloir conserver l'objet dans son état d'origine en cas d'erreur.
NB : cette remarque n'a que peu d'intérêt dans le cas présent car il ne
faut de toutes façons pas modifier l'objet
//et son utilisation dans le main
Thoraire horaireSemestre1("Lambert");
Merci bcp pour ton temps. En fait c'est un exa d'une école supérieure d'informatique de gestion en Suisse. Il y en a 9 en tous et celui-ci c'est le 7ème, intitulé "encapsulation".
"Olivier Azeau" a écrit dans le message de news: sbfQd.23939$
stephane wrote:
Ok c'est la dernière fois que vous verrez ces lignes de code c'est promis... Je suis en train de préparer un exa et j'avais déjà soumis 1 ou 2 X des questions concernant l'épreuve de l'année passée d'où provient ce code justement (ce forum de news m'a déjà sauvé la vie une fois...)
J'aimerais juste savoir si la surcharge de l'operateur+ et son utilisation dans le bloc try est correct.
Je vous serais très reconnaissant d'y jeter un oeil! (si jamais les 2 questions sont en bas du post) //voici la surcharge de l'opérateur +
L'algo me semble OK (concaténation de vecteurs) mais j'ai 3 remarques :
(1) ce code ne compile pas car il tente de modifier un objet dans une de ses méthodes const (ce qui est logique car quand on écrit horaireSemestre1 + horaireSemestre2, on ne veut pas que horaireSemestre1 soit modifié). La solution dans un tel cas c'est de créer un 3ème objet Thoraire résultat dans l'operator+.
(2) le test d'arrêt "m_nbCases>CcasesMax" me semble erroné (quand m_nbCases vaut CcasesMax, m_cases[m_nbCases] va au delà de la capacité du tableau)
(3) La levée de Toverflow *dans* la boucle fait que le tableau a déja été partiellement modifié quand l'exception est levée alors que l'on aurait pu vouloir conserver l'objet dans son état d'origine en cas d'erreur. NB : cette remarque n'a que peu d'intérêt dans le cas présent car il ne faut de toutes façons pas modifier l'objet
//et son utilisation dans le main Thoraire horaireSemestre1("Lambert");