Я использую Entity Framework (EF) для создания сложного типа из хранимой процедуры. и я хочу создать еще один экземпляр CMyClass
внутри CMyClass :: MemberFunc
.
void CMyClass::MemberFunc( void )
{
CMyClass * pMyClass = new CMyClass();
}
Это законно / безопасно? Я знаю, что это компилируется. Меня беспокоит рекурсия. Могу ли я столкнуться с ошибкой рекурсии при создании экземпляра CMyClass
в первый раз из основного приложения?
void main( void )
{
static CMyClass * s_pMyClass = new CMyClass(); // Will this cause recursion?
}
Или рекурсия будет происходить только в том случае, если вызывается конкретная функция-член с дополнительным экземпляром класса?
void CMyClass::MemberFunc( void )
{
CMyClass * pMyClass = new CMyClass();
pMyClass->MemberFunc(); // Pretty sure this will cause a recursive loop.
}
Другими словами, могу ли я безопасно создать экземпляр данного класса в функции-члене этого класса, если я не вызываю эту функцию-член второго экземпляра этого класса? Спасибо.