Jim*_*ell 5 c++ oop recursion instantiation
在该类的成员函数中实例化一个类是安全的吗?例如,假设我有CMyClass成员函数的类CMyClass::MemberFunc,我想创建另一个CMyClass内部实例CMyClass::MemberFunc.
void CMyClass::MemberFunc( void )
{
CMyClass * pMyClass = new CMyClass();
}
Run Code Online (Sandbox Code Playgroud)
这合法/安全吗?我知道它编译.我关心的是递归.当我CMyClass第一次从主应用程序实例化时,是否会遇到递归错误?
void main( void )
{
static CMyClass * s_pMyClass = new CMyClass(); // Will this cause recursion?
}
Run Code Online (Sandbox Code Playgroud)
或者,只有在调用具有附加类实例的特定成员函数时,才会发生递归吗?
void CMyClass::MemberFunc( void )
{
CMyClass * pMyClass = new CMyClass();
pMyClass->MemberFunc(); // Pretty sure this will cause a recursive loop.
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我可以安全地在该类的成员函数中实例化一个给定的类,只要我不调用该类的第二个实例的成员函数吗?谢谢.