Langage C++, aspects avancés
Quelle caractéristique ne s?applique pas au destructeur C++ :
il est appelé implicitement quand un objet sort de sa portée
il est appelé par l?instruction delete
il peut recevoir des arguments
il n?a pas de valeur de retour
Une classe Y friend d?une classe X permet :
à la classe Y d?hériter des propriétés de la classes X
aux instances de la classe Y d?être compatibles par affectation avec des instances de la classe X
aux méthodes de la classe Y d?accéder aux propriétés private de la classe X
aucune de ces propositions
Etant donnée la fonction A& foo( void ); et les instances unA et autreA de la classe A, quelle instruction ne fait pas appel à l'opérateur d'affectation défini dans la classe A :
unA = autreA ;
A unA = autreA ;
unA.operator= ( autreA ) ;
foo () = autreA ;
La surcharge d?un opérateur applicable sur des instances d?une classe ne peut pas s?effectuer par :
une fonction membre sans argument
une fonction globale avec 1 argument
une fonction membre avec 1 argument
une fonction globale sans argument
Quelle est la syntaxe correcte pour que la classe B hérite de A :
class B implements A { ? };
class B extends A { ? };
class B : public A { ? };
class B inherited A { ? };
En C++, une classe dérivée ne peut pas :
redéfinir des méthodes de sa classe de base
hériter de plusieurs classes
invoquer des méthodes publiques de sa classe de base
accéder à des données privées de sa classe de base
Etant données : class A { public : virtual void trace () { cout << "Trace A" << endl; } }; class B : public A { public : virtual void trace () { cout << "Trace B" << endl; } }; Quelle est l?expression qui affiche "Trace B" à l?écran :
A * pA1 = new A(); pA1->trace();
B * pB1 = (B*)new A(); pB1->trace();
A unA; B unB; unA = unB; unA.trace();
A* pA2 = new B(); pA2->trace();
Une fonction membre virtuelle pure est :
une fonction membre virtuelle ne possédant pas d?argument
une fonction membre virtuelle ne possédant pas de valeur de retour
une fonction membre virtuelle ne possédant pas de code
une fonction membre virtuelle ne possédant que des données statiques