2011-04-07 5 views
1

남자. 내가 좋아하는 몇 가지 사례를 참조하십시오파생 클래스 초기화의 기본 클래스에 대해서

class Derived:public Base{ 

public: 
    Derived(...):Base(...){} 
} 

어떤 상황인가, 아니면 우리가 명시 적으로 파생 ctor에 초기화 목록에서 자료를 초기화해야한다는 어떤 원리가? 감사합니다

+0

요약하면, 인수를 사용하여 호출 기본 ctor를 지정하고 특정 ctor를 지정하는 것은 초기화 목록에 표시하기위한 기본 사용법입니다. – ssb

답변

0

파생 생성자의 인수를 기본 생성자에 전달해야하는 경우 사용할 수 있습니다.

class foo 
{ 
    public: 
     foo() {} 
     foo(int num) {} 
}; 

class bar : public foo 
{ 
    public: 
     bar(int barNum): foo(barNum) {} 
}; 
4

인수를 사용하여 기본 생성자를 호출하려는 경우.

+0

인수를 취하는 생성자가 반드시 "기본값이 아닌"생성자 일 필요는 없습니다. – Nawaz

+0

@Nawaz : 네, 그렇습니다. 수정 된 답변은 –

+0

+1입니다. :-) – Nawaz

0

기본 클래스 (기본적으로 진입 점)에 여러 생성자가있는 경우 그래서 이들 중 하나를 호출 할 수 있습니다.

0

기본 클래스를 자세히 초기화하지 않으면 기본 생성자가 호출됩니다.

0

좋은 코딩 표준은 항상 생성자의 초기화 목록에서 기본 클래스를 초기화하는 것이 좋습니다.

기본 클래스의 생성자에 인수가 필요한 경우 수행해야합니다.

관련 문제