Zusammenfassung der wichtigsten Punkte der C++-Überprüfung Nr. 6 – Der Verarbeitungsmechanismus des Compilers für Eigenschaften und Methoden

黄舟
Freigeben: 2017-01-16 11:30:03
Original
1277 Leute haben es durchsucht

Der Compiler-Verarbeitungsmechanismus für Attribute und Methoden

Klasse in C++ geht von der objektorientierten Theorie aus und definiert gemeinsam Variablen (Eigenschaften) und Funktionen (Methoden), um die Art der realen Welt zu beschreiben. Aus Computersicht besteht ein Programm immer noch aus Datensegmenten und Codesegmenten.

Wie vollzieht der C++-Compiler die Umwandlung der objektorientierten Theorie in Computerprogramme?

Mit anderen Worten: Wie verwaltet der C++-Compiler die Beziehung zwischen Klassen, Objekten, Klassen und Objekten?

Konkret: Bestimmte Objekte rufen Methoden in der Klasse auf. Wie geht das? Unterscheiden Sie, welche bestimmte Klasse diese Methode aufruft?

1) Mitgliedsvariablen und Mitgliedsfunktionen in C++-Klassenobjekten werden separat gespeichert

Mitgliedsvariablen:

Gewöhnliche Mitgliedsvariablen: gespeichert in Objekten, mit dem gleichen Speicherlayout und der gleichen Byteausrichtung wie Strukturvariablen

Statische Mitgliedsvariablen: im globalen Datenbereich gespeichert

Mitgliedsfunktionen: im Codeausschnitt gespeichert.

Es stellt sich die Frage: Viele Objekte teilen sich ein Stück Code? Wie unterscheidet der Code bestimmte Objekte?

Mit anderen Worten: int getK() const { return k }, wie unterscheidet der Code die spezifischen k-Werte von obj1-, obj2- und obj3-Objekten?

Zusammenfassung der wichtigsten Punkte der C++-Überprüfung Nr. 6 – Der Verarbeitungsmechanismus des Compilers für Eigenschaften und Methoden

Die linke Seite ist die Implementierung der C++-Klasse und die rechte Seite ist die entsprechende zugrunde liegende Implementierung.

Zusammenfassung:

1. Mitgliedsvariablen und Mitgliedsfunktionen in C++-Klassenobjekten werden separat gespeichert. Das Vier-Regionen-Speichermodell in C-Sprache funktioniert immer noch!

2. Gewöhnliche Memberfunktionen von Klassen in C++ enthalten implizit einen this-Zeiger, der auf das aktuelle Objekt zeigt.

3. Statische Mitgliedsfunktionen und Mitgliedsvariablen gehören zu Klassen

Der Unterschied zwischen statischen Mitgliedsfunktionen und gewöhnlichen Mitgliedsfunktionen

Statische Mitgliedsfunktionen enthalten keine Zeiger auf bestimmte Objekte

Gewöhnliche Mitgliedsfunktionen enthalten einen Zeiger auf ein bestimmtes Objekt

Erweiterung:

Denken: Die Mitgliedsfunktionen einer Klasse können durch const geändert werden.

void const get(int a,intb)//类的成员函数
{
this->a=100;//错误
this->b=200;//错误
}
Nach dem Login kopieren

Gemäß der obigen Analyse ist die interne Implementierung

void get (const Test *This,int a,int b)
Nach dem Login kopieren

Daher ändert const den Speicherplatz, auf den verwiesen wird durch diesen Zeiger.

Das Obige ist die sechste Zusammenfassung der C++-Überprüfungspunkte – der Verarbeitungsmechanismus des Compilers für Attribute und Methoden. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage