Langage C++, aspects avancés
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
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
Quand doit-on redéfinir l?opérateur d?affectation dans une classe :
en toutes circonstances
lorsque la classe possède des attributs alloués dynamiquement
lorsque la classe possède des propriétés statiques
lorsque la classe possède un destructeur
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 ;
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
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
Quelle syntaxe n?a pas de sens en C++ :
virtual void f1 ( void ) ;
virtual void f2 () = 0 ;
virtual void f3 ( int i = 0 ) ;
virtual void f4 () = abstract;