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
Etant donnée la définition suivante : class A { public : static int foo(); }; Quel est l?appel valide de la fonction membre foo.
A::foo();
A.foo();
A->foo();
foo();
Quel opérateur ne peut-on pas surcharger en C++ :
.
[ ]
->
new
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
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 { ? };
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