小编Gor*_*ler的帖子

析构函数/释放内存的问题

所以我对c ++很新,我正在尝试一些基本的动态内存分配,我已经遇到了一些问题.我不确定我做错了什么,但我不能运行以下代码:

舱位声明:

class Car {
    double maxSpeed;
    bool isNew;
    char* manufacturerName;

public:
    Car(double = 0, bool = true, char* = "Unknown");
    ~Car();
    Car& operator=(const Car&);


};
Run Code Online (Sandbox Code Playgroud)

构造函数实现:

Car::Car(double maxSpeed, bool isNew, char* manufacturerName) {
    this->maxSpeed = maxSpeed;
    this->isNew = isNew;
    this->manufacturerName = new char[strlen(manufacturerName)];
    strcpy(this->manufacturerName, manufacturerName);
}
Run Code Online (Sandbox Code Playgroud)

析构函数实现:

Car::~Car() {
    delete [] manufacturerName;
}
Run Code Online (Sandbox Code Playgroud)

主要:

int main() {

    Car C(250.0, true, "Name1");
    Car C1(180.0, false, "Name2");
    Car C2;    
    cout << C << C1 << C2;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误消息我得到:

我得到的错误

c++ memory destructor class

0
推荐指数
1
解决办法
64
查看次数

标签 统计

c++ ×1

class ×1

destructor ×1

memory ×1