Pointeur virtuel
Ce qui est virtuel pointeur?
Salut, à TOUS,
Aujourd'hui j'ai eu un entretien téléphonique et vous avez une question: "qu'est-Ce que virtuelle pointeur?"
Je suis tombé sur celui-ci, donc après c'était fini, j'ai essayé Google. Malheureusement, il m'a donné une table virtuelle de références uniquement.
Donc ce qui est virtuel pointeur dans la plaine de l'anglais? Comment définissez-vous?
Merci.
source d'informationauteur Atul
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas une telle chose comme un "pointeur virtuel."
Il y a quelques choses à l'intervieweur pourrait dire:
operator->
Mais aussi loin que le "virtuel" pointeur est concerné, il n'y a pas une telle chose.
Mon interprétation serait: le contenu d'une vtable—pointeurs de méthodes virtuelles.
Pas une très bonne formulation, à mon humble avis.
Votre interviewer les plus susceptibles signifiait virtuel le pointeur de la table. http://en.wikipedia.org/wiki/Virtual_table#Implementation
C++ compilateur crée une classe caché membre appelé virtual-pointeur ou en court vptr lorsqu'il existe une ou plusieurs des fonctions virtuelles. Cette vptr est un pointeur qui pointe vers un tableau de pointeurs de fonction. Ce tableau est également créé par le compilateur et appelé virtual table de fonction ou de la vtable. Chaque ligne de la vtable est un pointeur de fonction en pointant une fonction virtuelle.
Pour accomplir la liaison tardive, le compilateur crée ce vtable table pour chaque classe qui contient des fonctions virtuelles et pour la classe dérivée. Le compilateur place les adresses des fonctions virtuelles pour cette classe particulière dans ‘vtable’.
Lors de l'appel de fonction virtuelle par le biais d'une base de pointeur de classe, le compilateur tranquillement insère un code pour récupérer le VPTR et rechercher l'adresse de fonction dans la VTABLE, appelant ainsi le droit de la fonction et de causer la fin de/de liaison dynamique.
Il pourrait aussi moyen de créer un pointeur de fonction virtuelle /virtuelle pure d'un père de la méthode et de l'appeler avec un enfant, encore ce n'est pas une bonne formulation ...