gpt4 book ai didi

c++ - 成员函数中的类实例化

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:44 25 4
gpt4 key购买 nike

在该类的成员函数中实例化一个类是否安全?例如,假设我有一个带有成员函数 CMyClass::MemberFunc 的类 CMyClass,我想在 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.
}

换句话说,只要不调用该类的第二个实例的成员函数,我是否可以在该类的成员函数中安全地实例化给定的类?谢谢。

最佳答案

这并不比实例化任何其他对象更安全或更不安全。请注意,在底部的示例中,递归严格基于方法调用自身的事实;不管怎样,它都会无限期地递归。

总而言之:你应该没问题。

关于c++ - 成员函数中的类实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5982421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com