구성원 개체를 초기화합니다.
클래스 클래스 형식 멤버 개체를 포함할 수 있지만 구성원 개체에 대 한 초기화 요구 사항을 만족 하는 다음 조건 중 하나가 충족 되어야 합니다.
포함 된 개체의 클래스에는 생성자가 없습니다 있어야합니다.
포함 된 개체의 클래스에 액세스할 수 있는 기본 생성자가 있습니다.
모든 포함 하는 클래스의 생성자는 명시적으로 포함 된 개체를 초기화합니다.
다음 예제에서는 이러한 초기화를 수행 하는 방법을 보여 줍니다.
// spec1_initializing_member_objects.cpp
// Declare a class Point.
class Point
{
public:
Point( int x, int y ) { _x = x; _y = y; }
private:
int _x, _y;
};
// Declare a rectangle class that contains objects of type Point.
class Rect
{
public:
Rect( int x1, int y1, int x2, int y2 );
private:
Point _topleft, _bottomright;
};
// Define the constructor for class Rect. This constructor
// explicitly initializes the objects of type Point.
Rect::Rect( int x1, int y1, int x2, int y2 ) :
_topleft( x1, y1 ), _bottomright( x2, y2 )
{
}
int main()
{
}
Rect 앞의 예제에 표시 된 클래스를 포함 두 구성원 개체가 클래스의 Point.개체의 생성자를 명시적으로 초기화 _topleft 및 _bottomright.참고 콜론을 닫는 괄호 생성자 (정의)에 따릅니다.콜론 뒤에 멤버 이름 및 인수 형식의 개체를 초기화 하는 데 사용할 나옵니다 Point.
[!참고]
멤버 이니셜라이저는 생성자에 지정 된 순서에서 멤버를 구성 하는 순서는 영향을 주지 않습니다. 멤버 클래스에서 선언 되는 순서에서 생성 됩니다.
참조 및 const 의 문법 섹션에 멤버 초기화 구문 사용 하 여 멤버 개체를 초기화 해야 합니다 초기화 하는 기본 및 멤버.이러한 개체 초기화 다른 방법이 없습니다.