Klassennamen
Klassendeklarationen stellen die neuen Typen als Klassennamen oder Klassentypen vor, in Programme.Neben Vorwärtsdeklarationen treten diese Klassendeklarationen auch als Definitionen der Klasse für eine angegebene Übersetzungseinheit auf.Es kann nur eine Definition für einen angegebenen Klassentyp pro Übersetzungseinheit.Mithilfe dieser neuen Klassentypen können Sie Objekte deklarieren, und der Compiler kann die Typüberprüfung durchführen, um sicherzustellen, dass keine Vorgänge, die mit den Typen nicht kompatibel sind, auf Objekte ausgeführt wird.
Hinweise
Ein Beispiel für eine solche Typüberprüfung ist:
// class_names.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class Point {
public:
unsigned x, y;
};
class Rect {
public:
unsigned x1, y1, x2, y2;
};
// Prototype a function that takes two arguments, one of type
// Point and the other of type pointer to Rect.
int PtInRect( Point, Rect & );
int main() {
Point pt;
Rect rect;
rect = pt; // C2679 Types are incompatible.
pt = rect; // C2679 Types are incompatible.
// Error. Arguments to PtInRect are reversed.
// cout << "Point is " << PtInRect( rect, pt ) ? "" : "not"
// << " in rectangle" << endl;
}
Während der vorhergehende Code wird, sind Vorgänge (z. B. Zuordnung und - Argument übergeben), die auf Klassentyp Objekten abhängig von der gleichen Typüberprüfung wie Objekte von integrierten Datentypen.
Da der Compiler Unterschied zwischen Klassentypen können Funktionen aufgrund von Argumenten sowie argumenten Klassentyp des integrierten Datentyps überladen werden.Weitere Informationen über überladene Funktionen finden Sie unter Funktionsüberladung und Überladen.