Nombres de clase

Las declaraciones de clase introducen nuevos tipos, denominados nombres de clase o tipos de clase, en los programas. A excepción de declaraciones adelantadas, estas declaraciones de clase también actúan como definiciones de clase de una unidad de traducción especificada. Solo puede haber una definición de un tipo de clase dado por cada unidad de traducción. Con estos nuevos tipos de clase, puede declarar objetos y el compilador puede realizar la comprobación de tipos para comprobar que no se realiza ninguna operación incompatible con los tipos en los objetos.

Comentarios

Un ejemplo de esta comprobación de tipos es:

// 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 se muestra en el código anterior, las operaciones (tales como la asignación y la transferencia de argumentos) sobre objetos de tipo de clase están sujetas a la misma comprobación de tipo que objetos de tipos integrados.

Dado que el compilador distingue entre tipos de clase, las funciones se pueden sobrecargar sobre la base de los argumentos de tipo de clase, así como de los argumentos de tipo integrado. Para obtener más información sobre las funciones sobrecargadas, vea Sobrecarga de funciones y Sobrecarga.

Vea también

Referencia

Clases, estructuras y uniones