QCM de C++ (Questions à Choix Multiples)

QCM de C++ (Questions à Choix Multiples)

Bienvenue sur la page des QCM (Questions à Choix Multiples) de C++ sur MCQss.com. Vous y trouverez une variété de questions relatives à C++ présentées sous forme de choix multiples. Vous pouvez cliquer sur l'une des options de réponse pour vérifier si elle est correcte ou non.

C++ est un langage de programmation largement utilisé dans le développement de logiciels. Il offre de puissantes fonctionnalités et est utilisé dans divers domaines tels que le développement d'applications, les jeux et la programmation système.

Pour apprendre C++, il est important de comprendre des concepts fondamentaux tels que les types de données, les opérateurs, les fonctions, les classes et l'héritage. La connaissance des concepts de la programmation orientée objet sera utile dans le développement de programmes en C++.

Les QCM gratuits de C++ sur MCQss.com vous offrent une excellente opportunité d'approfondir vos connaissances et de vous préparer aux examens et aux entretiens. Vous pouvez les utiliser pour vous entraîner librement et améliorer vos compétences en programmation C++.

1: Que représente OOD?

A.   Opérant sur des objets dans la conception

B.   Conception orientée objet

C.   Conception trop objective

D.   Base de données orientée objet

2: Quelle est la sortie du programme suivant? #include & lt; iostream & gt; int main () {double x = 1,0; pour (int i = 0; i & lt; 3; ++ i) x * = 0,1; std :: cout & lt; & lt; x * 1e3 - 1; }

A.   Toujours 0.

B.   Cela dépend d'une double implémentation, généralement pas exactement zéro.

C.   Toujours pas 0.

3: struct a {int n; }; A A; Quelle est la visibilité de A.N?

A.   privé

B.   protégé

C.   public

D.   La visibilité est définie uniquement pour les classes.

4: Std :: Make_heap () convertit une plage en tas et std :: sort_heap () transforme un tas en une séquence triée.

A.   vrai

B.   FAUX

5: Si vous avez deux fonctions C ++ différentes qui ont le même nom mais des types de paramètres différents, il est appelé ...

A.   fonctions en ligne.

B.   fonctions récursives.

C.   Surcharge de fonction.

6: Lequel des éléments suivants est une déclaration de déclaration variable valide?

A.   int a; B; C;

B.   int a, b, c;

C.   int a:

7: Les instructions C ++ sont séparées par ce symbole:

A.   Symbole de hachage (#)

B.   Colon (:)

C.   Semi-colon (;)

D.   Signe d'addition (+)

8: Lequel des éléments suivants est une déclaration de fonction C ++ valide qui ne renvoie pas de valeur?

A.   int myfunction (int a, int b)

B.   myFunction (int a, int b)

C.   void myfunction (int a, int b)

9: Comment déclarez-vous une variable entière x en C ++?

A.   déclarer x entier;

B.   int x;

C.   x int;

D.   int & lt; x & gt ;;

E.   x est entier;

10: Lequel des éléments suivants n'est pas une structure de boucle?

A.   Arrêtez quand Loop

B.   faire en boucle

C.   pour boucle

11: Lequel des éléments suivants n'est pas un type de données fondamental en C ++?

A.   carboniser

B.   large

C.   bool

12: Lequel des opérateurs suivants ci-dessous vous permet de définir les fonctions membres d'une classe en dehors de la classe?

A.   ?

B.   ,

C.   :%

D.   ::

13: Lequel des éléments suivants n'est pas un type primitif C ++?

A.   int

B.   réel

C.   flotter

D.   double

14: Lequel des énoncés suivants tests pour voir si la somme est égale à 10 et que le total est inférieur à 20, et si oui, imprime la chaîne de texte "incorrecte".

A.   Aucune de ces options

B.   if ((sum == 10) || (total <20)) printf (

C.   if ((sum == 10) && (total <20)) printf (

D.   Ctrl + Alt + Del

15: Choisissez la déclaration de fonction que vous utiliseriez si vous n'aviez pas besoin de renvoyer une valeur.

A.   MyFunction (vide)

B.   void myfunction ()

C.   myFunction ()

16: Lequel des éléments suivants est un mot réservé en C ++?

A.   CARBONISER

B.   char

C.   personnage

D.   Carboniser

17: Quelle instruction attribue à la variable a l'adresse de la variable b?

A.   a = b;

B.   a = & b;

C.   a = * b;

18: Quelle est une instruction de commentaire valide en C ++?

A.   Ces deux

B.   / * Ceci est un commentaire * /

C.   // c'est un commentaire

19: Un pointeur vide est un type spécial de pointeur qui indique l'absence d'un type pour le pointeur.

A.   Vrai

B.   FAUX

20: Que signifie la déclaration suivante? const int a = 50;

A.   La valeur de A ne peut pas changer de 50.

B.   La valeur initiale de A est de 50 mais vous pouvez la modifier.

C.   aucun d'eux

21: En C ++, un commentaire à ligne unique doit être commencé avec

A.   un leader //.

B.   tous ces

C.   un leader / **.

22: Quelle est la valeur de I après la ou les instructions suivantes? int i (4.36);

A.   4

B.   4.36

C.   4.4

D.   5

23: Dans la ligne suivante de code C ++, int foo [50]; Que représente le numéro 50?

A.   La valeur entière maximale qui peut être placée dans le tableau.

B.   La valeur initiale du premier élément de tableau.

C.   Le nombre d'éléments entiers que doit tenir le tableau.

24: La fonction printmsg ne nécessite aucun argument. Choisissez l'instruction qui appelle la fonction.

A.   printmsg ();

B.   void printmsg ();

C.   printmsg;

25: Les constructeurs peuvent-ils être surchargés?

A.   Oui

B.   Non

C.   Dépend de la situation.

26: Quel est un avantage d'utiliser les modèles C ++?

A.   réduire la duplication du code

B.   Les modèles sont de typesafe

C.   tous ces

D.   Augmenter la flexibilité du code

27: Quel est (est) un (s) exemple (s) du (s) prototype (s) de fonction C ++ valide?

A.   int myfunction (int a, int b);

B.   tous ces

C.   int myFunction (int, int);

28: Les classes peuvent contenir des variables de membres statiques qui sont mondiales à la classe et ...

A.   aucun d'eux

B.   peut être accessible par tous les objets de la même classe.

C.   Leurs valeurs changeront pour chaque objet de la même classe.

29: Que fait l'opérateur de taille (arg)?

A.   Renvoie la valeur maximale de l'arg

B.   Renvoie la taille en octets d'Arg

C.   Renvoie la longueur des caractères de Arg

30: Quelle est la différence entre une classe et une structure

A.   Vous pouvez déclarer des fonctions dans une classe, vous ne pouvez pas déclarer des fonctions dans une structure.

B.   Ce sont les mêmes.

C.   Vous ne pouvez pas surcharger un opérateur dans une structure.

D.   Les membres d'une classe sont privés par défaut, et les membres d'une structure sont publics par défaut.

31: Vrai ou faux: En C ++, un commentaire ne peut être spécifié qu'avec un leader //.

A.   Vrai

B.   FAUX

32: std :: vector & lt; int & gt; V (4); std :: fill (v.begin (), v.end (), 4); Quel est le contenu de Vector V?

A.   4,4,4,4

B.   0,1,2,3

C.   4,5,6,7

D.   1,2,3,4

33: Qu'est-ce que 'int a =' a ';' faire?

A.   Il déclarera une nouvelle variable A et la définira sur 97 (en supposant une machine qui utilise ASCII).

B.   Il déclarera une nouvelle variable A et le définira sur sa valeur précédente.

C.   Il provoquera une boucle infinie.

D.   Rien, c'est une erreur et ne compile pas.

34: Lequel des éléments suivants peut provoquer une erreur de corruption de la mémoire?

A.   Libérer la mémoire qui a déjà été libérée.

B.   Tous ces

C.   L'utilisation d'une adresse avant la mémoire est allouée et définie.

35: Considérez ce fragment de code: a = 25; b = & a; Qu'est-ce que B est égal?

A.   valeur contenue à l'adresse d'un

B.   Adresse d'un

C.   25

36: Lequel des éléments suivants n'est pas un opérateur de coulée de type spécifique dans la langue C ++?

A.   dynamic_cast

B.   reinterpret_cast

C.   inconnu_cast

D.   const_cast

37: Un élément de structure existe dans votre code avec des unités membres entiers. Vous avez la déclaration variable suivante: Item * MyItem;. Comment accédez-vous à la valeur des unités?

A.   * (MyItem.units)

B.   MyItem- & gt; Unités

C.   MyItem.units

38: Les types de données définis (typedef) vous permettent de créer ...

A.   différents types en C ++.

B.   Noms alternatifs pour les types existants en C ++.

39: Lequel des éléments suivants est un identifiant variable valide en C ++?

A.   m_test

B.   1_str

C.   classe

40: Que fait la ligne: #include & lt; iOStream & gt; signifie dans un programme C ++?

A.   Il indique au programme d'inclure les fichiers d'en-tête de bibliothèque standard.

B.   Il indique au préprocesseur d'inclure le fichier standard iOStream.

C.   Il indique au préprocesseur d'inclure le fichier standard iOStream uniquement si le programme requis par le programme.

41: Compte tenu de ce code, quelle est la sortie? #include struct forme {virtual void move () {std :: cout << "forme :: move \ n"; }}; Struct Circle: Public Shape {void move () {std :: cout << "Circle :: Move \ n"; }}; struct rectangle: public forme {void move () {std :: cout << "rectangle :: move \ n"; }}; int main () {forme * s; S = nouvelle forme (); s-> move (); S = new Circle (); s-> move (); s = new rectangle (); s-> move (); retour 0; }

A.   rectangle :: Move Circle :: Move Shape :: Move

B.   Compiler l'erreur

C.   Erreur d'exécution

D.   Shape :: Move Shape :: Move Shape :: Move

E.   Shape :: Move Circle :: Move Rectangle :: Move

42: Dans une déclaration de classe, l'instruction "virtual int foo () = 0;" Fait quoi?

A.   Déclare une fonction virtuelle volatile.

B.   Déclare une fonction virtuelle pure.

C.   Provoque une erreur de compilateur.

D.   Déclare une fonction virtuelle par défaut.

43: std :: vector & lt; int & gt; foo (5);

A.   Initialise un vecteur avec 5 éléments de valeur 0.

B.   Initialise un vecteur avec un élément avec la valeur 5.

44: Où le compilateur recherche-t-il d'abord File.h dans la directive suivante: #include "file.h"?

A.   Dans tous les répertoires spécifiés par la variable d'environnement de chemin sur la machine.

B.   Dans les répertoires par défaut où il est configuré pour rechercher les fichiers d'en-tête standard

C.   Le même répertoire qui comprend le fichier contenant la directive.

45: Quelle est la valeur de 2--2?

A.   Rien, ce n'est pas une expression C ++ valide.

B.   0

C.   -2

D.   2

E.   4

46: Vrai ou faux: une classe qui a une méthode virtuelle pure peut être instanciée.

A.   Vrai

B.   FAUX

47: Définir un moyen autre que d'utiliser le mot clé en ligne pour faire une fonction en ligne

A.   La fonction doit être définie comme la fonction d'ami.

B.   La fonction doit être définie à l'intérieur de la classe.

C.   La fonction doit être définie en dehors de la classe.

48: Lequel de ceux-ci est une différence entre les types de structure et de classe?

A.   Aucune différence.

B.   Il n'y a aucun héritage avec les structures. Les classes peuvent être dérivées.

C.   Les structures ne permettent que des définitions variables. Les classes permettent également la définition de la fonction.

D.   Les structures ont la confidentialité publique par défaut, les classes utilisent privé.

49: Quelle est la taille du tableau de caractères qui contiendrait la valeur "Helloo"?

A.   8

B.   6

C.   7

50: En C ++, quelle est la différence entre ces deux déclarations: void foo (); vide foo (vide);

A.   Le second est illégal.

B.   Le premier est illégal.

C.   Aucun, ils sont équivalents.

D.   L'un d'eux ne prend aucune valeur, l'autre prend une valeur.

51: Laquelle des règles suivantes s'applique à la surcharge de l'opérateur en C ++?

A.   Les deux autres réponses sont correctes.

B.   Ne peut pas redéfinir la signification des types intégrés

C.   Impossible d'avoir des arguments par défaut

52: Quelles classes peuvent être utilisées pour effectuer à la fois l'entrée et la sortie sur les fichiers en C ++?

A.   de la ruelle

B.   fstream

C.   strever

D.   Toutes les réponses sont correctes.

53: Quel est le type de données pour ce qui suit: l "Hello World"?

A.   une chaîne entière

B.   un string

C.   une large chaîne de caractères

54: En pensant aux membres de données et à la mémoire adressable, en quoi une structure, une classe et un syndicat sont-elles différentes?

A.   Aucune différence, les trois sont alloués séquentiellement

B.   Il n'y a pas de différence, les trois sont alloués au hasard

C.   Les membres des données du syndicat et de la classe sont alloués dans la mémoire séquentiellement tandis que les membres de données de structure sont alloués de la mémoire au hasard

D.   Les membres de données de structure et de classe sont alloués dans la mémoire séquentiellement alors qu'une union est allouée de la mémoire au hasard

E.   Les membres de données de structure et de classe sont alloués dans la mémoire séquentiellement alors qu'un syndicat reçoit suffisamment de mémoire pour le plus grand membre de données uniquement

55: Quel mot clé C ++ permet au compilateur de déterminer le type d'une variable par la valeur utilisée pour l'initialiser?

A.   Auto

B.   var

C.   abstrait

D.   virtuel

56: int * array = new int [10]; supprimer le tableau;

A.   Ce code sera correctement libre de la mémoire

B.   Ce code a un comportement indéfini

57: Que fait le mot-clé "explicite"?

A.   Il empêche un constructeur d'argument unique d'être utilisé dans une conversion implicite

B.   Il nécessite une variable pour résider dans la mémoire principale au lieu du cache d'un processeur

C.   Il rend la déclaration d'un constructeur par défaut obligatoire

58: Qu'est-ce qu'une fonction virtuelle en C ++?

A.   Une fonction de membre de classe que vous prévoyez d'être redéfinie dans les classes dérivées.

B.   Une fonction de membre de classe qui doit être redéfinie dans les classes dérivées.

C.   Une fonction membre de classe qui n'a pas besoin d'être définie dans la classe de base.

59: Quelle est la complexité temporelle de la suppression de la première variable dans un objet Deque (par exemple, deque & lt; int & gt; a;)?

A.   O (n / 2)

B.   O (Log)

C.   Sur)

D.   O (1)

60: Supposons int * a = new int [3]; Comment traiteriez-vous le bloc de mémoire pointé par un?

A.   supprimer un [3];

B.   supprimer [] a;

C.   supprimer a;

D.   supprimer un [];

E.   supprimer [3] a;

61: Quel opérateur ne peut pas être surchargé par une fonction membre de classe?

A.   ==

B.   ?

C.   *

D.   []

E.   ++

62: Laquelle des affirmations suivantes utilise une expression de lambda?

A.   std :: regex e (& # 34; \\ b (sub) ([^] *) & # 34;);

B.   int (* moins) (int, int) = soustraire;

C.   bool is_odd = [] (int n) {return n% 2 == 1;};

63: Un pointeur vide est un type spécial de pointeur qui indique le ...

A.   Absence d'un type pour le pointeur.

B.   aucun d'eux

C.   Le pointeur a une valeur nulle.

64: Lequel des appels suivants méthode foo () de la classe parent parent de la classe actuelle?

A.   this-> parent-> foo ();

B.   Parent.foo ();

C.   Parent :: foo ();

D.   Instance parent; instance.foo;

65: Un espace de noms anonymes est utilisé pour ...

A.   espaces de noms de nid

B.   Soutenir les fermetures

C.   Empêcher l'accès externe aux déclarations locales à une unité de compilation

D.   DÉCHIGUATION DES DÉCLARATIONS D'AUTRES ESPACES

66: Le code C ++ juridique suivant est-il? | char * str = "abc" + "def";

A.   Non.

B.   Oui.

C.   Oui, mais seulement si vous #include <string> d'abord.

D.   Non, vous devez ajouter "const" avant "char".

67: Quelle est la plage de données pour une valeur entière non signée en C ++ sur un système où les INT sont 32 bits?

A.   0 à 2 147 483 647

B.   0 à 65 535

C.   0 à 4 294 967 295

D.   0 à 255

68: Comment accédez-vous à "bleu" dans la classe d'énumération "couleur"? Enum Class Color {rouge, bleu, vert};

A.   bleu

B.   Couleur bleue

C.   couleur [1]

D.   Couleur bleue

69: Les littéraux de cordes peuvent s'étendre à plus d'une seule ligne de code en mettant quel caractère à la fin de chaque ligne inachevée?

A.   une nouvelle ligne (\ n)

B.   un onglet (\ t)

C.   une barre oblique inverse (\)

70: Lequel des éléments suivants est un effet secondaire potentiel des fonctions d'inclinaison?

A.   La norme C ++ garantit que l'inlinaison n'entraîne aucun effet secondaire défavorable

B.   La taille du segment de pile du programme augmente

C.   La taille du binaire compilé augmente

D.   La taille du segment du tas du programme augmente

71: Quel type d'exceptions la fonction suivante peut-elle lancer: int myfunction (int a);?

A.   Tous

B.   Standard

C.   Aucun

72: Lequel est théoriquement plus rapide?

A.   ++ i

B.   i ++

C.   Les deux sont tout aussi rapides.

73: Quelle est la valeur de x après le code suivant: int x = 0; if (x = 1) {x = 2; } else {x = 1; }

A.   Le code ne compilera pas

B.   1

C.   2

D.   0

74: Quelle est la valeur de 10,10% 3?

A.   1

B.   1.0

C.   3.03

D.   1.01

E.   Aucun, c'est un mélange invalide de types.

75: classe A {int x; protégé: int y; Public: Int Z; }; classe B: privé A {}; Quel est le niveau d'intimité de B :: z?

A.   protégé

B.   public

C.   B n'hérite pas d'accès à Z à partir de A.

D.   privé

76: Si vous ne fournissez pas de constructeurs pour votre classe, quel (s) constructeur (s) sera créé par le compilateur?

A.   Copier le constructeur

B.   Constructeur par défaut

C.   Ces deux

77: Quelle est une différence clé entre une structure et un syndicat en termes de taille de mémoire?

A.   Un syndicat est la taille de quel que le membre de données est initialisé tandis que la taille d'une structure est la somme de la taille des membres de données de structure

B.   Un syndicat est la taille de son plus grand membre de données tandis que la taille d'une structure est la somme de la taille des membres de données de structure

C.   Aucune différence; Ils sont la somme des tailles de leurs membres de données respectives

D.   Une union est la taille de son plus grand membre de données alors que la taille d'une structure est au moins la somme de la taille des membres de données de structure

78: Donné: union a {int x; court y; }; un var [20]; Combien d'octets de mémoire var occupe-t-il?

A.   Ceci est un code C ++ non valide

B.   80

C.   Dépend

D.   120

E.   4

79: Quelle est la sortie du code suivant? int a = 8; pour (int i = 1; i & lt; = i * 3; i ++) n ++;

A.   Dépendent de l'exécution.

B.   Boucle infinie.

C.   Boucle finie.

D.   Tous sont faux

80: Le code ci-dessous se compilera-t-il sans erreur? struct c0 {int i; c0 (int x) {i = x; }}; int main () {c0 x1 (1); C0 x2 (x1); retour 0; }

A.   Non. Le constructeur n'est pas public.

B.   N ° C0 x2 (x1) renverra l'erreur.

C.   Non. Les types de structure n'ont pas de constructeurs.

D.   Oui.

81: Quel n'est pas une table de hachage valide fournie par la STL?

A.   hash_multiset

B.   hash_set

C.   hash_table

D.   hash_map

E.   hash_multimap

82: Où t est un type: std :: vector & lt; t & gt; :: at vs std :: vector & lt; t & gt; :: opérateur []:

A.   at Is TOUJOURS Bounds vérifié. L'opérateur [] ne l'est pas.

B.   at Is ne sont pas toujours vérifiés. L'opérateur [] est.

C.   AT est équivalent à l'opérateur []

83: enum {a, b, c = b + 2}; Quelle est la valeur de C?

A.   4

B.   Compiler l'erreur.

C.   3

D.   2

84: Quel est le type défini ici: typedef a (b :: * c) (d, e) const;

A.   A est défini comme une fonction constante dans l'espace de noms B en prenant les arguments des types D et E, renvoyant un pointeur vers le type C.

B.   C est défini comme un pointeur de fonction membre constant de la classe B prenant les arguments des types D et E, type de retour A.

C.   B est défini comme une classe contenant une fonction membre constante appelée A, en prenant des arguments de types D et E, renvoyant un pointeur sur le type C.

85: std :: tuple personne {"John Doe", 42}; std :: cout << std :: get <1> (personne); Quelle est la sortie?

A.   Compiler l'erreur

B.   John Doe

C.   42

86: Quel est le code ci-dessous? Code de structure {non signé int x: 4; Unigné int Y: 4; };

A.   Une déclaration de structure avec 2 tableaux d'int.

B.   Déclaration de structure de champ un peu.

C.   Une structure avec une initialisation en place de ses membres.

D.   Code C ++ non valide.

E.   Déclaration de sélecteur un peu.

87: Quelle est la complexité garantie de Std :: push_heap?

A.   O (log (n))

B.   Sur)

C.   O (n ^ 2)

D.   O (1)

88: Selon la norme C ++, qu'est-ce que la taille (void)?

A.   Cela dépend de la taille des mots de l'ordinateur hôte.

B.   Rien, le vide n'a pas de taille.

C.   0

D.   1

E.   4

89: Quelle est la sortie du programme suivant? #include #include int main () {std :: vector int_values ​​{3}; pour (Auto const & vv: int_values) {std :: cout << vv; }}

A.   Aucun d'eux

B.   3

C.   333

D.   Le programme échoue pendant la compilation

E.   000

90: int a [] {1, 2, 3}; a [[] {return 2; } ()] + = 2; Quelle est la valeur d'un [2]?

A.   3

B.   Comportement non défini

C.   5

D.   Erreur de compilation: attribut malformé.

E.   4

91: Est-il possible de créer une instance de classe placée à un emplacement particulier en mémoire?

A.   Seulement par Dirty Hack avec Reinterpret_cast.

B.   Non. Uniquement l'allocation sur la pile ou en mémoire dynamique est autorisée.

C.   Oui, placement nouveau fait cela.

92: classe foo {foo () {}; }; classe Boo: public foo {boo (): foo () {}; }; Quelle norme permet la compilation de ce code.

A.   Aucun, le code ne compilera pas

B.   C ++ 11

C.   C ++ 03

D.   C ++ 98

E.   C ++ 0x

93: Quelle est la valeur de x, si sizeof (int) == 4? int a non signé = 0x98765432; non signé int x = a >> 33;

A.   0x98765432

B.   1

C.   C'est un comportement indéfini

D.   0

E.   0x4c3b2a19

94: Quelle est la sortie du programme suivant? int a, b = 3; const int & ar [] = {a, b}; ar [0] = 2; std :: cout << ar [0];

A.   3

B.   aucune sortie; Le programme est mal formé

C.   0

D.   2

95: std :: vector & lt; int & gt; V (10); std :: iota (v.begin (), v.end (), 10); Quel est le contenu de Vector V?

A.   1,2,3,4,5,6,7,8,9,10

B.   10,11,12,13,14,15,16,17,18,19,20

C.   1,2,3,4,5,6,7,8,9

D.   10,11,12,13,14,15,16,17,18,19

96: Quelle fonction renvoie toujours une référence de réalité de "x", qui peut être utilisée pour indiquer que l'objet va être détruit bientôt?

A.   std :: xvalue (x)

B.   std :: Move (x)

C.   std :: shift (x)

D.   std :: détruire (x)

97: bool is_even (int i) {return i% 2 == 0; } int v [] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; std :: partition (v, v + 10, is_even); Quel est le contenu de la table V?

A.   0,1,2,3,4,5,6,7,8,9

B.   9,8,7,6,5,4,3,2,1

C.   STD :: Partition () ne fonctionne pas avec des tableaux simples.

D.   9,1,7,3,5,4,6,2,8,0

E.   0,8,2,6,4,5,3,7,1,9

98: classe A {int x; protégé: int y; Public: Int Z; }; classe B: public virtuel a {}; Quel est le niveau d'intimité de B :: x?

A.   privé

B.   B n'hérite pas d'accès à x de A.

C.   public

D.   protégé

99: La valeur de "(sizeof (short) == sizeof (int) && sizeof (int) == sizeof (long))" est

A.   implémentation définie

B.   erreur de compilateur

C.   FAUX

D.   vrai

100: Quelle est la sortie du programme suivant? modèle void foo (u &, t &) {std :: cout << "premier"; } template void foo (int &, const t &) {std :: cout << "second"; } int main () {int a; double g = 2.; foo (a, g); retour 0; }

A.   Erreur de compilation: appel ambigu

B.   d'abord

C.   deuxième