我有一个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/