Maison  >  Article  >  développement back-end  >  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

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

黄舟
黄舟original
2017-01-16 11:30:031271parcourir

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;//错误
}


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

void get (const Test *This,int a,int b)


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). !


Déclaration:
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