Langage C++, aspects avancés
Etant donnée une classe X possédant les fonctions membres ci-dessous, quelle est celle qui n?a aucun sens en C++ :
inline void f1 ( int );
int f2 ( const X& ) const;
static void f3 (const int& val );
final void f4 (char car ) ;
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ées les déclarations suivantes : int& operator[] (const char *); //fonction membre de la classe X X unX ; int i = 0 ; Quelle est la proposition invalide :
i = unX["chaine"];
unX[i]++;
unX["chaine"]++;
unX["chaine"] = i;
Quel attribut d?accès n'est pas applicable en C++ :
private
global
public
protected
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
Une fonction membre virtuelle ne peut pas être :
le mécanisme C++ permettant la mise en ?uvre du polymorphisme
une fonction membre dont l?adresse de la méthode est résolue à l?exécution
applicable à un destructeur
générée inline