Názvy tříd
Deklarace třídy zavést nové typy, které se nazývá názvy tříd nebo typy tříd do programů.S výjimkou pro dopředné deklarace těchto prohlášení třídy také působit jako definice třídy pro překlad dané jednotky.Může existovat pouze jedna definice pro typ dané třídy za jednotku překlad.Pomocí těchto nových typů třídy deklarovat objekty a kompilátor provést kontrolu k ověření provedení žádné operace, která je kompatibilní s typy objektů.
Poznámky
Je například taková kontrola typu:
// 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;
}
Jako předchozí kód ilustruje, operací (jako je například přiřazení a předávání argument) u objektů typu třídy jsou předmětem stejného typu jako objekty předdefinované typy kontroly.
Protože kompilátor rozlišuje mezi typy tříd, funkce, můžete přetížení na základě argumentů typu třída, stejně jako předdefinovaný typ argumentů.Další informace o přetížené funkce, viz Přetížení funkce a Overloading.