我有一个std::stringstream指针:

std::stringstream *stream;

我创建一个实例:
stream = new std::stringstream();

如何调用stringstream析构函数?以下失败:
stream->~stringstream();

错误:期望的类名在“(”标记之前。如果可能,我不想使用命名空间std。在此先感谢您的答复。

最佳答案

这与 namespace 无关。您只需在指针上调用delete即可:

delete stream;

但是,为什么首先需要一个指针?如果使用自动存储分配对象,则在退出在以下对象中声明的范围时,该对象将被销毁:
{
  std::stringstream stream;
} // stream is destroyed on exiting scope.

关于c++ - C++如何销毁命名空间的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14571114/

10-12 01:24