Sujet dédié à la traduction et la relecture du chapitre 11.4.
Sujet dédié à la traduction et la relecture du chapitre 11.4.
Cool
J'en profite pour signaler de ne pas utiliser le caractere apostrophe des fichiers anglais ’ mais notre bon vieux caractere a nous ', sinon ca bug au rendu.
Un pointeur est une variable qui contient l'adresse d'une location(d'un emplacement)Idemce qu'il sélectionne est une location dans une classe.
offset est toujours un déplacement relatif par rapport à une adresse absolue. Ici il s'agit d'accéder à un membre à partir de l'adresse de l'objet, il y a donc un décalage à opérer en fonction de la déclaration de la structure.sélectionner un membre d'une classe signifie l'excentrage (un décalage) dans cette classe
indicatif et non subjonctif ici -> requiertLa syntaxe d'un pointeur sur un membre requière que vous sélectionnez un objet au même moment que vous déréférenciez le pointeur sur le membre.
subjonctif et non indicatif -> sélectionniez
concordance des temps ->déréférencez
en outre 'au moment où' est mieux que 'au même moment que'
Attention 'actually' est un faux ami.Vous ne pouvez pas produire une adresse actuelle jusqu'à ce que vous combiniez cet excentrage avec le début de l'adresse d'un objet particulier
modif proposée: Vous ne pouvez pas vraiment obtenir une adresse tant que (until) vous n'avez pas combiné ce décalage avec l'adresse de début d'un objet particulier.
Je propose:Finalement, considérez ce qui arrive si vous avez un pointeur qui pointe sur quelque chose dans une classe d'objet, même si il représente un excentrage de l'objet.
un pointeur qui pointe sur quelque chose à l'intérieur d'une classe (un membre), même s'il représente en fait un décalage par rapport à l'adresse de l'objet (du début de l'objet donc).
Vous devez le déréférencer (indicatif + infinitif)Pour accéder à ce qui est pointé, vous devriez le déréférencez avec *.
Ainsi l'* est combiné avec la déréférence de l'objetAinsi, l' * est combiné avec un objet déréférencié.
Donc la nouvelle syntaxe devienspour l'objet ou la (une) référence,Maintenant, qu'elle (quelle) est la syntaxe pour définir un pointeur sur membreLa seul(e) différence estque vous devez dire quelle classe d'objet est utilisez parBien sur, ceci est accompli avec le nom de la classe et l'opérateur de résolution de portéeAinsi,
int ObjectClass::*pointerToMember;
int ObjectClass::*pointerToMember;
defines a pointer-to-member variable called pointerToMember that points to any int inside ObjectClass. You can also initialize the pointer-to-member when you define it (or at any other time): définie(t)Il y'a (n'y a) actuellement aucuneet le non d'un (non pas un) objet de la classe.Ici est (Voici) un exempleEvidement, c'est trop maladroit pour être utiliser (é) n'importe où excepté pour des cas spéciaux (ce qui est exactement ce pour lequel ils ont était (étés) prévus).Aussi, les pointeurs sur membre sont tous à fait limité(s) : ils peuvent être assigné(s) seulement à une localisation spécifique à l'intérieur d'une classe.Vous ne pouvez pas, par exemple, les incrémenter ou (les) comparer comme vous pourriez avec des pointeurs ordinaires.
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
Une pointeur sur un fonction (introduit à la fin du chapitre 3) est définie comme cela:Les parenthèses autours de (*fp) sont nécessaire(s) pour forcer le compilateur à évaluer proprement la définition.[COLOR="Red"]Sans cela /COLOR] ceci semblerai(t) être une fonction qui retourne un int*.Les parenthèses jouent aussi un rôle important quand est définie et utilisé les pointeurs sur fonction membre.(pour définir et utiliser des pointeurs sur f.m.)vous définissez un pointeur sur cette fonction membre en insérant le nom de la classe et un opérateur de résolution de portée d'une définition d'un (dans une définition de) pointeur d'une fonction ordinaire :Différemment(Au contraire) des fonctions non membre(s), le & n'est pas optionnel quand il prend l'adresse d'une fonction membre.A remplacer par:Cependant, vous pouvez donner l'identifiant de fonction avec le type du pointeur sur membre.
Cependant, vous pouvez donner l'identificateur de fonction sans liste d'arguments parce que tout peut être résolu au moyen du nom de classe et de l'opérateur de résolution de portée.
A remplacer par l'intérêt d'un pointeur est que vous pouvez changer la valeur pointée au moment de l'exécutionVous pouvez changer la valeur du pointeur sur ce qu'il pointe durant l'exécution,
Typiquement, vos classes peuvent seulement avoir des fonctions membre(s) (s) avec une (vision) portée publiqueA remplacer par:les données membre sont considérées usuellement comme des parts fondamentale de l'implémentation
D'habitude, les données membres sont considérées comme faisant partie de l'implémentation sous-jacente
donc l'exemple suivant sélectionne les fonctions membre(s) durant l'exécution.
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
Partager