2010-05-26 7 views
0

구조, 상속 및 정의에 도움이 필요합니다.구조, 상속 및 정의

//define struct 
struct tStruct1{ 
    int a; 
}; 

//definition 
tStruct1 struct1{1}; 

및 상속

struct tStruct2:tStruct1{ 
    int b; 
}; 

어떻게 선언 라인에서 정의 할 수 있습니다?

tStruct2 struct2{ ????? }; 

질문이 하나 더 있는데 어떻게 typedef 구조체로 정의 된 구조에 상속을 사용할 수 있습니까?

답변

4

먼저 구조체에 대한 typedef은 아무 것도 변경하지 않으며 형식에 대한 대체 이름 만 소개합니다. 평소와 같이 상속받을 수 있습니다.

Type identifier{params} 구문의 정의는 새로운 uniform initialization에 대한 C++ 0x 구문입니다. pre-C++ 0x에는 사용자 정의 유형을 초기화하는 두 가지 옵션이 있습니다.

집계 초기화

집계는 POD 유형과 포드의 배열이나 내장 유형에 있습니다. 그들은 중괄호로 초기화 목록을 사용하여 초기화 할 수 있습니다

struct A { 
    int i; 
}; 
struct B { 
    A j; 
    int k; 
}; 

B b = {{1}, 2 }; 

이이 InformIT article에서 자세히 설명합니다.

이 부분은 POD 유형에서만 작동하므로 상속이 시작될 때 작동하지 않습니다.

struct A { 
    int i; 
    A(int number) : i(number) {} 
}; 
struct B : A { 
    int j; 
    B(int number1, number2) : A(number1), j(number2) {} 
}; 

B b(1, 2); 

생성자

더 자세히 설명 :이 경우 당신은

사용자 정의 생성자

그들은 특수 멤버 함수를 정의하여 오히려 자유롭게 사용자 정의 형식을 초기화 할 수를 사용해야합니다 this InformIT article.