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 会使 mat2._pmat 和 mat._pmat 指向堆内存中的同一个数组。当 mat2 析构时,该数组被释放,而
C++类编程深入探究与实践
超级会员免费看
订阅专栏 解锁全文
2万+

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



