/* Nom: Prénom: Nom d'usager (login): Exercice -2- Tp#1 - IFT1169 On vous demande: - Écrire une description sommaire du fonctionnement du programme. - Ajouter les différents commentaires appropriés, au début de chaque classe, méthode etc. - La méthode "operator==" permet de vérifier si deux objets sont identiques. En vous basant sur la méthode "operator==" définie dans la classe Y, écrire la méthode "operator==" définie dans la classe X. - Afficher en sortie le résultat obtenu. - Expliquer l'affichage obtenu. */ #include #include using namespace std; class X { int a, b; public: X(int aa, int bb): a(aa), b(bb) { } virtual bool operator== (X &); }; class Y: public X { int e, f; public: Y(int aa, int bb, int ee, int ff): X(aa,bb), e(ee), f(ff) { } virtual bool operator== (X &); }; bool X::operator== (X& x) { // À compléter } bool Y::operator== (X& x) { X s(x); Y *r=dynamic_cast(&x); return X(*this)==s && r!=NULL && r->e==e && r->f==f; } int main( ) { X *x[8] = { new X(5,6), new X(5,7), new X(5,6), new X(5,7), new Y(5,6,7,8), new Y(5,6,7,9), new Y(5,6,7,8), new Y(5,7,7,9)}; for (int i=0; i<8; i++) { for (int j=0; j<8; j++) cout << (*x[i]==*x[j]) << " "; cout << endl; } return 0; }