類別名稱
類別宣告會在程式中引入新的類型,稱為類別名稱或類別類型。 除了向前宣告以外,這些類別宣告也是特定轉譯單位的類別定義。 每個轉譯單位只能有一個特定類別類型定義。 您可以使用這些新的類別類型宣告物件,而編譯器可以執行類型檢查,確認不會對物件執行與類型不相容的作業。
備註
以下是這類類型檢查的範例:
// 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;
}
如上述程式碼所示,對類別類型物件執行的作業 (例如指派和引數傳遞) 必須和內建類型的物件進行相同的類型檢查。
由於編譯器會區別類別類型,因此可以根據類別類型引數和內建類型引數多載函式。 如需多載函式的詳細資訊,請參閱函式多載和多載。