StackOverflow. Мой первый пост здесь.
Я пришел к D из C ++ и MFC, которые я использую в своей работе - не только GUI, но и многие макросы MFC (DECLARE_DYNCREATE
и т. Д.) И класс CObject
.
Как я видел, в D у нас есть std.Object
класс с factory
методом.
Итак, как правильно переписать этот код C ++ в D? если возможно, конечно.
class CPerson : public CObject
{
DECLARE_DYNAMIC( CPerson )
// other declarations
};
IMPLEMENT_DYNAMIC( CPerson, CObject )
void DoSmthWithObject(const CObject* pObj)
{
CPerson* pPerson = dynamic_cast<CPerson*>(pObj);
ASSERT_VALID(pPerson);
// Work with out CPerson object.
}
// Somethere in code create our CObject...
CObject* pMyObject = new CPerson;
// .. and do some strange things with it.
DoSmthWithObject(pMyObject);