Développer en langage C++
Etant données les déclarations suivantes : int i = 10 ; int& ri = i; char * s = "10"; char c = 10; Quelle proposition n?affiche pas 10 à l?écran :
cout << i << endl;
cout << s << endl;
cout << ri << endl;
cout << c << endl;
Quel mécanisme n?est pas disponible en C++
passage par référence
surcharge de variable
valeur par défaut pour les paramètres de fonctions
surcharge de fonctions
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 ) ;
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
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 ;
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
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
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 { ? };
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
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();
Quelle classe n?existe pas dans iostream.h :
istream
ostream
errstream
iostream
Quel flux n?est pas prédéfini en C++ :
cout
cfile
cerr
cin
Etant donnée la définition suivante : template <class T, int i> class A{...}; Quelle est la proposition valide :
A<int, 3> unA;
class B : public A<char, 20> {...};
typedef A<char *, 20> C;
elles sont toutes valides
Quelle caractéristique ne s?applique pas aux exceptions C++ :
un bloc try est toujours suivi d?au moins un bloc catch
un bloc try peut être associé à plusieurs blocs catch
un bloc try peut être imbriqué dans un autre try
un bloc try peut être suivi d?un bloc finaly