Имена классов

Объявления классов создают в программах новые типы, называемые именами классов или типами классов. За исключением опережающих объявлений, эти объявления классов также используются как определения классов для определенной записи преобразования. Для любого конкретного типа класса в каждой записи преобразования может быть только одно определение. Используя новые типы классов, можно объявлять объекты и компилятор может производить проверку типов, чтобы исключить выполнение с объектами операций, несовместимых с их типами.

Заметки

Пример такой проверки типов:

// 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;
}

Как показано в приведенном выше примере кода, для операций (например, присваивание или передача аргументов) с объектами типов класса выполняются такие же проверки типов, что и для объектов встроенных типов.

Поскольку компилятор различает типы классов, возможна перегрузка функций в зависимости как от аргументов типов класса, так и от аргументов встроенных типов. Дополнительные сведения о перегруженных функциях см. в разделе Перегрузка функций и Перегрузка.

См. также

Ссылки

Классы, структуры и объединения