C++ 对包含字符字符串的对象使用析构函数时出现断点异常

C++ 对包含字符字符串的对象使用析构函数时出现断点异常,c++,breakpoints,C++,Breakpoints,我有个问题。当我启动我的程序时,它工作得很好,但是当它继续运行时,它说有一个断点错误。然后它说内存分配有问题,所以它不工作。代码如下: 标题: 不要显式调用析构函数: gigas.~basics(); 当作用域离开时,将自动调用它。因此,崩溃出现是因为它实际上被调用了两次。不要显式调用析构函数: gigas.~basics(); 当作用域离开时,将自动调用它。因此,崩溃之所以出现,是因为它实际上被调用了两次。虽然您没有显示任何关于所得到错误的细节,但我可以想象这里的问题是您对gigas的显式

我有个问题。当我启动我的程序时,它工作得很好,但是当它继续运行时,它说有一个断点错误。然后它说内存分配有问题,所以它不工作。代码如下: 标题:


不要显式调用析构函数:

gigas.~basics();

当作用域离开时,将自动调用它。因此,崩溃出现是因为它实际上被调用了两次。

不要显式调用析构函数:

gigas.~basics();

当作用域离开时,将自动调用它。因此,崩溃之所以出现,是因为它实际上被调用了两次。

虽然您没有显示任何关于所得到错误的细节,但我可以想象这里的问题是您对gigas的显式调用。~basics();在范围退出时,将自动为您调用析构函数。所以你打了两次电话。对于已经删除的指针,delete[]可以做任何事情。在这种情况下会崩溃。如果您只是默认构造类,那么将对未由new分配的内存调用delete。您需要了解有关的信息。然后停止对字符串使用字符指针,改为。非常感谢!我已经在旧编译器上工作了几个月,没有自动析构函数。所以,我以前是手工写的。另一方面,字符指针是一种实验,在其他情况下,我将使用std::string,当然:)虽然您没有显示任何关于错误的细节,但我可以想象这里的问题是您对gigas的显式调用。~basics();在范围退出时,将自动为您调用析构函数。所以你打了两次电话。对于已经删除的指针,delete[]可以做任何事情。在这种情况下会崩溃。如果您只是默认构造类,那么将对未由new分配的内存调用delete。您需要了解有关的信息。然后停止对字符串使用字符指针,改为。非常感谢!我已经在旧编译器上工作了几个月,没有自动析构函数。所以,我以前是手工写的。另外,字符指针是一种实验,在其他情况下,我会使用std::string,当然:)
#include "basics.h"

int main()
{
    basics gigas("fear");
    basics cop(gigas);
    gigas.~basics();
    system("pause");
    return 0;
}
gigas.~basics();