菜鸟请教个简单问题
#include <iostream>using namespace std;class employee{public: employee(int a,char *b,int c,char *d,char *e) { name=new char[30]; sex=new char[5]; position=new char[30]; code=a;name=b;age=c;sex=d;position=e; } [color=#FF0000]~employee() { if (name != NULL) { delete[] name; name = NULL; } if (sex != NULL) { delete[] sex; sex = NULL; } if (position != NULL) { delete[] position; position = NULL; } }[/color]private: int code; //编号 char *name; //姓名 int age; //年龄 char *sex; //性别 char *position; //从属部门};int main(){ employee insert(1,"cd",23 ,"男","xxx"); return 0;}
delete []name;//因为你在构造函数中name=b,所以在此时你实际上释放的是b的地址开始的内存,所以错误