Résumé des points clés de la revue C n° 6 - Le mécanisme de traitement du compilateur pour les propriétés et les méthodes

黄舟
Libérer: 2017-01-16 11:30:03
original
1273 Les gens l'ont consulté

Le mécanisme de traitement du compilateur pour les attributs et les méthodes

La classe en C part de la théorie orientée objet et définit ensemble des variables (attributs) et des fonctions (méthodes) pour décrire le monde réel. D'un point de vue informatique, un programme se compose toujours de segments de données et de segments de code.

Comment le compilateur C achève-t-il la transformation de la théorie orientée objet en programmes informatiques ?

En d'autres termes : Comment le compilateur C gère-t-il la relation entre les classes, les objets, les classes et les objets ?

Plus précisément : des objets spécifiques appellent des méthodes dans la classe, puis le compilateur C Comment pour distinguer, quelle classe spécifique appeler cette méthode ?

1) Les variables membres et les fonctions membres dans les objets de classe C sont stockées séparément

Variables membres :

Variables membres ordinaires : stocké dans des objets, avec la même disposition de mémoire et le même alignement d'octets que les variables de structure

Variables membres statiques : stockées dans la zone de données globales

Fonctions membres : stockées dans l'extrait de code.

La question se pose : De nombreux objets partagent un bout de code ? Comment le code distingue-t-il des objets spécifiques ?

En d'autres termes : int getK() const { return k; }, comment le code distingue-t-il les valeurs k spécifiques des objets obj1, obj2 et obj3 ?

Résumé des points clés de la revue C n° 6 - Le mécanisme de traitement du compilateur pour les propriétés et les méthodes

Le côté gauche est l'implémentation de la classe C et le côté droit est l'implémentation sous-jacente correspondante.

Résumé :

1. Les variables membres et les fonctions membres dans les objets de classe C sont stockées séparément. Le modèle de mémoire à quatre régions en C est toujours valable !

2. Les fonctions membres ordinaires des classes en C contiennent implicitement un pointeur this pointant vers l'objet actuel.

3. Les fonctions membres statiques et les variables membres appartiennent à des classes

La différence entre les fonctions membres statiques et les fonctions membres ordinaires

Les fonctions membres statiques ne contiennent pas de pointeurs vers des objets spécifiques

3. 🎜>
Les fonctions membres ordinaires contiennent un pointeur vers un objet spécifique

Expansion :

Réflexion : Les fonctions membres d'une classe peuvent être modifiées par const. Qui est modifié par const ?

void const get(int a,intb)//类的成员函数
{
this->a=100;//错误
this->b=200;//错误
}
Copier après la connexion


Selon l'analyse ci-dessus, l'implémentation interne est

void get (const Test *This,int a,int b)
Copier après la connexion


Par conséquent, const modifie l'espace mémoire pointé par ce pointeur.

Ce qui précède est le sixième résumé des points clés de la révision C - le mécanisme de traitement du compilateur pour les attributs et les méthodes. Pour plus de contenu connexe, veuillez prêter attention au site Web chinois de PHP (www.php.cn). !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal