c++ 类里面的结构体指针析构 结构体里有string型
答案:1 悬赏:50 手机版
解决时间 2021-03-20 12:42
- 提问者网友:心如荒岛囚我终老
- 2021-03-20 00:56
c++ 类里面的结构体指针析构 结构体里有string型
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-03-20 01:40
在你的第二段代码中
public:
Matrix() {
rows = 0;
columns = 0;
}
Matrix的构造函数没有对Person的指针进行初始化, 然后你的析构函数又删除了指针, 所以这就造成了错误。。。
你想想 你都没有new一个指针出来 怎么就能delete呢 new和delete是一一配对的。
可以这么改
Matrix() {
rows = 0;
columns = 0;
values = new Person();
}
~Matrix () {
delete values;
}
在你原来的代码中 用的是delete []values。。。这也是不对的。。。[]values是值数组结构啊。。但是你的声明里面 只是声明了一个Person的指针 而不是指针数组
你也可以把Person结构体加入构造函数和析构函数。。。这样完美点。。。
public:
Matrix() {
rows = 0;
columns = 0;
}
Matrix的构造函数没有对Person的指针进行初始化, 然后你的析构函数又删除了指针, 所以这就造成了错误。。。
你想想 你都没有new一个指针出来 怎么就能delete呢 new和delete是一一配对的。
可以这么改
Matrix() {
rows = 0;
columns = 0;
values = new Person();
}
~Matrix () {
delete values;
}
在你原来的代码中 用的是delete []values。。。这也是不对的。。。[]values是值数组结构啊。。但是你的声明里面 只是声明了一个Person的指针 而不是指针数组
你也可以把Person结构体加入构造函数和析构函数。。。这样完美点。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯