删除析构函数中 class 的成员,该成员由 C++ 中的方法中的 new 生成
Delete a member of a class in destructor which is made by new in a method in C++
我搜索了这个问题,但我找不到它,如果它是一个重复的问题并且没有给出负分,请告诉我答案的link。
在 Student class 我有很多成员,但其中四个是由操作员 new 在一个调用 set
的方法 public
我这里只写其中一个:
class Student{
private:
float *tp;
....
}
这里是方法 set 即 public:
void Student::set(int field, int valeur){
...
tp = new float[valeur];
...
}
这是析构函数,即public:
~Student(){
...
delete tp;
...
}
main:
...
Student *students=new Student[n];
...
delete students;
编译过程中没有任何错误,但是当我运行遇到错误时:
我也更改了 main 代码只是为了检查:
Student s;
错误还存在。
我搜索了这个问题,但我找不到它,如果它是一个重复的问题并且没有给出负分,请告诉我答案的link。
在 Student class 我有很多成员,但其中四个是由操作员 new 在一个调用 set
的方法 public我这里只写其中一个:
class Student{
private:
float *tp;
....
}
这里是方法 set 即 public:
void Student::set(int field, int valeur){
...
tp = new float[valeur];
...
}
这是析构函数,即public:
~Student(){
...
delete tp;
...
}
main:
...
Student *students=new Student[n];
...
delete students;
编译过程中没有任何错误,但是当我运行遇到错误时:
我也更改了 main 代码只是为了检查:
Student s;
错误还存在。