我的程序正在停止

My program is stopping

本文关键字:程序 我的      更新时间:2023-10-16

这是我的类,我的问题是当我调用构造函数时

偶数 e1(1,m1);

使用main方法中的参数,我的程序正在停止,我不知道为什么。M1是IntrareCAlendar的对象。

class Eveniment{
private:
    const int id;
    IntrareCalendar data;
    char* detalii;
    int static nrIntrari;
public:
    Eveniment(int nr,IntrareCalendar ic) :id(nr){
        this->data = ic;
        nrIntrari++;
    }
    ~Eveniment(){
        if (this->detalii != NULL)
            delete[]this->detalii;
    }
};

我该怎么办?非常感谢!

您从未将detalii设置为任何有效内容。它保持未初始化状态 - 它不会自动初始化为特定值。您可以将其设置为在构造函数中nullptr。(请勿在C++中使用NULL

析构函数对该成员调用delete[],但在此之前未调用任何new[]。因此,程序的行为是未定义的。

此外,请考虑使用 static std::atomic<int> 作为 nrIntarari 的类型,以防多个线程实例化Eveniment