gpt4 book ai didi

C++ RAII 和多态兼容性

转载 作者:行者123 更新时间:2023-11-28 00:05:21 32 4
gpt4 key购买 nike

由于 RAII,C++ 中没有 finally block 。现在,如果我有一个指针对象,并且其中一个方法发生异常,将如何删除该对象?。这是我编写的示例代码。

class A
{
public:
A()
{
cout<<"I am inside A\n";
}

virtual void mymethod()
{
throw 0;
}

virtual ~A()
{
cout<<"A destroyed\n";
}
};

class B : public A
{
public :
//A a;

B()
{
cout<<"I am inside B \n";
}

virtual void mymethod()
{
throw 0;
}

~B()
{
cout<<"B destroyed\n";
}
};

int _tmain(int argc, _TCHAR* argv[])
{
try
{
A *b = new B();

b->mymethod();

delete b;
}

catch (int i)
{
cout<<"exception";
}
return 0;
}

现在在这个如何删除指针对象(b)。

最佳答案

不会的。你没有使用 RAII。使用智能指针。

关于C++ RAII 和多态兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35986256/

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