我应该在C ++中使用delete new实例,对吗?

class C {
public:
    void hello() {...};
};


如果我有上述类的实例,则可能需要像

C* c = new C();
c->hello();
delete c;


对?这个怎么样:

(new C())->hell();


我可以这样做吗?是否自动调用destructor并释放内存?

最佳答案

不,析构函数不会自动调用,因为您从不会调用delete。但是,您可以创建一个智能指针,一次即可为您完成此操作:

::std::make_unique<C>()->helo();

关于c++ - 括号内的实例被破坏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51533825/

10-10 13:31
查看更多