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

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

Заметки

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

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

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

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

См. также

Ссылки

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