Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cpp:start [2009/12/28 21:54]
xin
cpp:start [2022/09/22 19:58] (aktuell)
Zeile 4: Zeile 4:
 Ihr habt eine gute Wahl getroffen. Wie gut, werdet ihr in der [[cpp:​introduction|Einleitung]] und im Verlauf eurer "​Programmiererkarriere"​ noch bemerken. Ihr habt eine gute Wahl getroffen. Wie gut, werdet ihr in der [[cpp:​introduction|Einleitung]] und im Verlauf eurer "​Programmiererkarriere"​ noch bemerken.
  
-Um zu beginnen, lest euch die [[cpp:​introduction|Einleitung]] durch und arbeitet euch langsam Artikel für Artikel ​nach vor.\\+Um zu beginnen, lest euch die [[cpp:​introduction|Einleitung]] durch und arbeitet euch langsam Artikel für Artikel vor.\\
  
 ===== Voraussetzungen ===== ===== Voraussetzungen =====
Zeile 17: Zeile 17:
  
 ===== Einleitung ===== ===== Einleitung =====
-  ​[[cpp:​introduction|Einleitung]] +  ​[[cpp:​introduction|Einleitung]] 
-  ​[[cpp:​helloworld|Hello World! Das erste Programm]]+  ​[[cpp:​helloworld|Hello World! Das erste Programm]]
  
 ===== Grundlagen ====== ===== Grundlagen ======
-  ​* [[cpp:new|Speicher anfordern und freigeben]]: new und delete+ 
 +  ​Neue [[cpp:operator:​start|Operatoren]]: ​Speicher anfordern und freigeben ​mit [[cpp:new|new und delete]]
   * [[cpp:​var:​init|Initialisieren von Variablen]]   * [[cpp:​var:​init|Initialisieren von Variablen]]
   * [[cpp:​type:​start|Neue Datentypen]]   * [[cpp:​type:​start|Neue Datentypen]]
 +  * [[cpp:​defaultparams|Default Parameter]]
   * [[cpp:​cast:​why|Neue Casts]]   * [[cpp:​cast:​why|Neue Casts]]
     * [[cpp:​cast:​static|Statische Casts]]     * [[cpp:​cast:​static|Statische Casts]]
Zeile 31: Zeile 33:
   * [[cpp:​class:​def|Wie definiert man eine Klasse]]   * [[cpp:​class:​def|Wie definiert man eine Klasse]]
   * [[cpp:​class:​member|Was ist ein Member?]] - Variablen, Methoden und statische Funktionen   * [[cpp:​class:​member|Was ist ein Member?]] - Variablen, Methoden und statische Funktionen
 +  * [[cpp:​class:​this|Der this-Pointer]] - Der Zeiger auf sich selbst
 +  * [[cpp:​class:​static|Statische Member]]
   * [[cpp:​class:​construct|Konstruktoren]]   * [[cpp:​class:​construct|Konstruktoren]]
 +  * [[cpp:​cast:​construct|Casten durch Umformen]] ​
   * [[cpp:​class:​init|Die Initialisierungsliste]]   * [[cpp:​class:​init|Die Initialisierungsliste]]
   * [[cpp:​class:​private|Kapselung]]:​ Member verstecken (Information Hiding)   * [[cpp:​class:​private|Kapselung]]:​ Member verstecken (Information Hiding)
Zeile 47: Zeile 52:
   * [[cpp:​inheritance:​start|Die Spielregeln zum Ableiten]]   * [[cpp:​inheritance:​start|Die Spielregeln zum Ableiten]]
   * [[cpp:​inheritance:​def|Basiskonstruktoren rufen]]   * [[cpp:​inheritance:​def|Basiskonstruktoren rufen]]
 +  * [[cpp:​inheritance:​overwrite|Überschreiben]]
   * [[cpp:​inheritance:​multiple|Mehrfachableitungen]]   * [[cpp:​inheritance:​multiple|Mehrfachableitungen]]
     * [[cpp:​inheritance:​using|Gleichnaminge Member in zwei Basisklassen]]     * [[cpp:​inheritance:​using|Gleichnaminge Member in zwei Basisklassen]]
     * [[cpp:​inheritance:​diamond|Das Diamant-Problem]]     * [[cpp:​inheritance:​diamond|Das Diamant-Problem]]
-  ​* [[cpp:cast:dynamic|Dynamische Casts]]+    ​* [[cpp:inheritance:virtual|virtuelle Ableitungen]]
  
 ===== Überladen ===== ===== Überladen =====
-  * [[cpp:​overload:​start|Vorteile des Überladens]] +  * [[cpp:​overload:​start|Funktionen ​und Methoden überladen]]
-  * [[cpp:​overload:​functions|Funktionen ​überladen]] +
-  * [[cpp:​overload:​method|Methoden überladen]]+
   * [[cpp:​overload:​using|Überladene Funktionen in den Namensraum zurückholen]]   * [[cpp:​overload:​using|Überladene Funktionen in den Namensraum zurückholen]]
   * [[cpp:​operator:​overload|Operatorüberladung]]   * [[cpp:​operator:​overload|Operatorüberladung]]
 +
 +===== Namensräume =====
 +
 +  * [[cpp:​namespace:​start|Einführung]]
 +  * [[cpp:​namespace:​Definition]] eines Namensraum
 +  * [[cpp:​namespace:​access|Zugriff]] auf Elemente eines Namensraums
 +  * [[cpp:​namespace:​using|Namensräume einbinden]] oder einzelne Elemente aus einem Namensraum einbinden
  
 ===== Const-Correctness ===== ===== Const-Correctness =====
   * [[cpp:​const:​start|Was ist Const-Correctness?​]]   * [[cpp:​const:​start|Was ist Const-Correctness?​]]
-  * [[cpp:​const:​def|Eine Const-Funktion]] +  * [[cpp:​const:​arguments|Const-Argumente]]  
-  * [[cpp:​const:​mutable|Veränderbar,​ trotz Const]]: mutable +  * [[cpp:​const:​def|Const-Methoden]] 
-  * [[cpp:​cast:​const|Const-Casts]]+  * Veränderbar,​ trotz Const: [[cpp:const:mutable|mutable]] 
 +  * Brecheisen für alte Quelltexte: ​[[cpp:​cast:​const|Const-Casts]]
  
 ===== Objektorientierte Programmierung ===== ===== Objektorientierte Programmierung =====
-  * [[cpp:oop:start|Was ist Objektorientierte ​Programmierung?​]] +  * [[cpp:oop:explanation|Was ist objektorientierte ​Programmierung?​]] 
-  * [[cpp:oop:virual|Virtuelle Funktionen]] (virtual)+  * [[cpp:oop:funcptr|Objektorientierung über Funktionspointer]] 
 +  * [[cpp:​oop:​vtable|Objekttyp-orientierte Programmierung]]  ​
     * [[cpp:​oop:​slicing|Probleme bei CallByValue-Aufrufen]] (Slicing)     * [[cpp:​oop:​slicing|Probleme bei CallByValue-Aufrufen]] (Slicing)
-  * [[cpp:oop:interfaces|Interfaces]] (Pure virtual methods) +  * [[cpp:oop:virtual|virtuelle Methoden]] Objekttyporientierte Programmierung mit C++ 
-  * [[cpp:​oop:​rtti|Runtime ​Type Information]]+  * [[cpp:​oop:​destruct|virtuelle Destruktoren]] Objekttyporientierter Abbau von Objekten 
 +  * [[cpp:​oop:​interface|Interfaces]] (Pure virtual methods) 
 + 
 +==== Laufzeit-Typ-Informationen ==== 
 +  * [[cpp:​oop:​rtti|Run-Time-Type-Information]] (RTTI) 
 +  * [[cpp:​cast:​dynamic|Dynamische Casts]]  
 + 
 + 
 +===== Weitere Verwendung von Klassen ===== 
 +  * [[cpp:​class:​functor|Funktor]] 
 +  * [[cpp:​class:​PrePost|Prä- und Post-Funktionen]]
  
 ===== Generische Programmierung ===== ===== Generische Programmierung =====
Zeile 81: Zeile 104:
 ===== Hacking ===== ===== Hacking =====
   * [[cpp:​cast:​reinterpret|Reinterpretierende Casts]]   * [[cpp:​cast:​reinterpret|Reinterpretierende Casts]]
 +  * [[cpp:​article:​placementnew|Placement New]]