永发信息网

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结构体加入构造函数和析构函数。。。这样完美点。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯