在 C++ 中,如果您将匿名对象作为参数传递给命名对象方法,那么当您删除命名对象时,匿名对象会被删除吗?
我用于项目的库需要指向其大多数对象方法的对象的指针,例如:
WContainerWidget::addWidget(WContainerWidget* widget) {/*...*/}
在他们的示例中,他们在构造这些对象时经常使用 new 运算符。
WContainerWidget* aFoo = new WConainerWidget(/*args*/);
aFoo->addWidget(new WText(/*args*/));
如果我delete aFoo
,匿名WText()
对象会被删除吗?
我是否相信他们的实现会在不对源代码进行排序的情况下处理这些删除,还是应该避免示例行为,并自己明确命名/删除所有内容?