C++ 类编程深入解析
1. 成员逐个初始化
在 C++ 中,当使用一个类对象初始化另一个类对象时,默认会进行成员逐个初始化。例如:
Triangular tri1(8);
Triangular tri2 = tri1;
在这个例子中, tri1 的数据成员 _length 、 _beg_pos 和 _next 会依次复制给 tri2 ,这就是默认的成员逐个初始化。
对于 Triangular 类,默认的成员逐个初始化可以正确复制类的数据成员,无需额外操作。但对于 Matrix 类,默认的成员逐个初始化会引发问题。示例如下:
{
Matrix mat(4, 4);
{
Matrix mat2 = mat;
// 使用 mat2
// mat2 的析构函数被调用
}
// 使用 mat
// mat 的析构函数被调用
}
在这个例子中, mat2._pmat 会被初始化为 mat._pmat ,这会导致两个 _pmat 指向堆内存中的同一个数组。当 mat2 的析构函
超级会员免费看
订阅专栏 解锁全文
1522

被折叠的 条评论
为什么被折叠?



