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 est la fonction membre permettant d?initialiser une instance d?une classe A possédant un attribut de type int :
void initA ( int val ) ;
A ( int val = 0 ) ;
A createA ( int val ) ;
void A ( int val ) ;
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
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
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
Pour une classe C héritant d?une classe B qui elle même hérite d?une classe A, lors de la création d?une instance de C, la chronologie d?exécution des constructeurs est :
A() puis B() puis C()
C() puis B() puis A()
l?ordre d?exécution est aléatoire
cette question n?a pas de sens
Quelle assertion sur les classes abstraites est fausse :
non instanciable
contient des méthodes virtuelles pures
ne contient jamais d?attribut
une classe dont on peut hériter
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;