Nomi di classe
Le dichiarazioni di classe introducono nuovi tipi, denominati nomi delle classi o i tipi di classe, nei programmi.Fatta eccezione per le dichiarazioni con prototipo, queste dichiarazioni di classe anche fungono dalle definizioni di classe per unità di conversione specificata.Può esistere una sola definizione per un determinato tipo della classe per unità di conversione.Utilizzando questi nuovi tipi di classe, è possibile dichiarare gli oggetti e il compilatore possibile eseguire il controllo dei tipi per verificare che nessuna operazione incompatibile con i tipi venga eseguita sugli oggetti.
Note
Un esempio di tale controllo dei tipi è:
// 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;
}
Mentre il codice precedente viene illustrata, le operazioni (come assegnazione e argomento che passano) su oggetti di classe-tipo sono soggetti allo stesso controllo dei tipi di oggetti di tipi incorporati.
Poiché il compilatore fa distinzione tra i tipi di classe, le funzioni possono essere sottoposte a overload in base agli argomenti del classe-tipo nonché agli argomenti del tipo incorporato.Per ulteriori informazioni sulle funzioni in overload, vedere overload di funzione e L'overload.