在你的第二段代码中
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结构体加入构造函数和析构函数。。。这样完美点。。。