Développer en langage C++
Quelle syntaxe n?est pas correcte :
void f1 ( int & val ) ;
void f2 ( const int & val ) ;
void f3 ( char * val = NULL) ;
void f4 ( int = 0, char * ) ;
Etant données les variables int i, j ; et la fonction int& foo(const int&); quelle est la proposition qui génère une erreur à la compilation :
i = foo(j);
foo(j) = i*j;
foo(i++)++;
elles sont toutes valides
Etant donnée l'instance unA de la classe A, quel est le constructeur permettant de traiter l?instanciation A autreA = unA ;
A(const A& );
A(const A);
A(const A*);
aucun de ceux proposé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
Quel opérateur ne peut-on pas surcharger en C++ :
.
[ ]
->
new
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 ;
Etant données les déclaration suivantes : A unA; B unB; Sachant que B hérite en public de A, quelle instruction génère une erreur à la compilation :
A * pA= &unB;
unA = unB;
unB = (B)unA;
B * pB = (B*)pA;
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
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
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 proposition provoque une erreur à la compilation :
cout << "uneChaine" ;
cout << 'a' , 'b' ;
cout << hex << 20 ;
cout << endl ;
Quelle classe n?existe pas dans iostream.h :
istream
ostream
errstream
iostream
Une classe template est :
une classe paramétrable à l?aide d?un ou plusieurs types génériques
Une classe qui possède des attributs virtuels
une classe non instanciable
une classe qui possède des attributs persistants
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