MFC

protected 속성으로 런타임클래스를 사용해라?....고찰

디버그정 2008. 9. 5. 23:08
mfc는 클래스마법사로 새로운 클래스를 생성시 기본적으로
protected로 생성자를 막아 놓는다.
대신 DECLARE_DYNCREATE - IMPLEMENT_DYNCREATE 매크로를 통해
런타임 다이나믹 크리에이션을 제공한다.

그래서 원칙적으로  아래와 같은 식으로 사용하도록 한다.
m_pSwordView = (CSwordView*)(RUNTIME_CLASS(CSwordView)->CreateObject());


그런데 이것은 좀 귀찮긴 하다.
그래서 보통 public으로 생성자를 선언하고 다음과 같이 사용한다
m_pSwordView = new CSwordView;

훨씬 간단하다...굳이 왜 저리 막아놨는지 모르겠다.
많은 사람들이 저리 사용하는데....다음 버전에서는 public으로 제발 좀 바꿔라.....