클래스 이름
클래스 선언을 클래스 이름 또는 클래스 형식으로 프로그램 이라는 새로운 형식을 소개 합니다.전방 선언을 제외 하 고 이러한 클래스 선언은 또한 특정된 번역 단위에 대 한 클래스 정의 역할을 합니다.번역 단위 당 주어진된 클래스 형식에 대 한 정의가 있을 수 있습니다.이러한 새 클래스 형식을 사용 하 여 개체를 선언할 수 있습니다 및 컴파일러 유형 검사를 사용할 수 있는 작업의 종류와 호환 되지 않는 개체에 수행 됩니다 확인을 수행할 수 있습니다.
설명
이러한 형식을 확인 하는 예제가입니다.
// 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;
}
앞의 코드에서 알 수 있듯이 클래스 형식의 개체 작업 (예: 할당 및 인수 전달) 형식이 같은 개체의 기본 제공 형식으로 확인 될 수 있습니다.
컴파일러 클래스 형식 사이 구분 하기 때문에 함수를 클래스 형식 인수 뿐만 아니라 기본 제공 된 형식 인수 기준으로 오버 로드 수 있습니다.오버 로드 된 함수에 대 한 자세한 내용은 함수 오버 로드 및 오버 로드.