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으로 제발 좀 바꿔라.....
protected로 생성자를 막아 놓는다.
대신 DECLARE_DYNCREATE - IMPLEMENT_DYNCREATE 매크로를 통해
런타임 다이나믹 크리에이션을 제공한다.
그래서 원칙적으로 아래와 같은 식으로 사용하도록 한다.
m_pSwordView = (CSwordView*)(RUNTIME_CLASS(CSwordView)->CreateObject());
그런데 이것은 좀 귀찮긴 하다.
그래서 보통 public으로 생성자를 선언하고 다음과 같이 사용한다
m_pSwordView = new CSwordView;
훨씬 간단하다...굳이 왜 저리 막아놨는지 모르겠다.
많은 사람들이 저리 사용하는데....다음 버전에서는 public으로 제발 좀 바꿔라.....