Nomes de classe
Declarações de classe introduzem novos tipos, chamado de nomes de classe ou tipos de classe, em programas.Exceto para encaminhar declarações, essas declarações de classe atuam também como definições da classe para uma unidade de conversão de determinado.Pode haver somente uma definição para um tipo de classe determinada por unidade de conversão.Usando esses novos tipos de classe, você pode declarar objetos e o compilador pode executar uma verificação para verificar que nenhum incompatíveis com os tipos de operações são executadas nos objetos de tipo.
Comentários
Um exemplo de tal verificação de tipo é:
// 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;
}
Como o código anterior ilustra, operações (como, por exemplo, atribuição e passagem de argumento) em objetos de tipo de classe são sujeitos ao mesmo tipo de verificação como objetos dos tipos internos.
Porque o compilador faz a distinção entre tipos de classes, funções podem ser sobrecarregadas com base de argumentos de tipo de classe, bem como os argumentos de tipo interno.Para obter mais informações sobre funções sobrecarregadas, consulte A sobrecarga de função e sobrecarregamento.