2017-01-03 1 views
0

저는 창 클래스의 생성자가 모든 구현을 직접 초기화하지 않고 대신 다른 함수를 호출하는 함수를 호출합니다.너무 많은 함수 사용

예 :

window::window(T&t, X&x) 
{ setup(t, x);} 

void window::setup(T&t, X&x) 
{ 
//initializing implementation details, size, title etc... 
create(t, x); 

void window::create(T&t, X&x) 
{ 
//initializing the library Window 
//... 
} 

소멸자와 동일하며 소멸자 자체에서 호출하는 대신 destroy() 함수를 호출하십시오.

스타일에 불과하거나 실용적인가요?

+3

책과 더 많은 문맥을 보지 않고는 그것에 대해 말하기가 어렵습니다. –

+3

창에 생성자가 두 개 이상 있습니까? – drescherjm

+0

... 그리고 모든 코드를 직접 생성자/소멸자에 배치하면 * 매우 * 길게 만들 수 있습니까? – StoryTeller

답변

2

구성원의 초기화가 함수로 구현 된 경우 해당 함수를 여러 생성자에서 다시 사용할 수 있습니다. 공용 초기화 함수를 사용하면 기본 생성자가 나중에 초기화 할 수있는 부분적으로 초기화 된 상태로 객체를 남겨 둘 수 있습니다. 그렇지 않으면 기본 생성자가 아닌 전체 초기화 옵션을 제공하면서 클래스가 DefaultConstructible이 될 수 있습니다.

파괴 기능을 구현하고 소멸자에서 호출하면 개체 사용자가 개체가 삭제되기 전에 개체가 관리하는 리소스를 해제 할 수 있습니다. 이렇게하면 여러 리소스 세트로 객체 메모리를 재사용 할 수 있습니다 (사소한 최적화).

+0

요즘에는 위임 생성자 (IMHO)를 사용하는 것이 더 중요합니다. –