Cie*_*eja 1 c++ arrays constructor multidimensional-array
我有一个构造函数,用r行和c列创建和清空A.
A::A(int r, int c)
: row(r), column(c), e(new int[r*c])
{
for (int i = 0; i < r*c; i++)
{
e[i] = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道内存分配是否会失败,它仍然会使用非零值初始化行和列.我该怎样预防呢?
如果new无法分配内存,则会抛出一个实例std::bad_alloc,即异常.
如果构造函数失败,则会销毁所有已完全构造的成员和基础,并且不会创建类型的有效实例.
所以,你r和c你通过一个例外,离开你的构造,因为它们不存在没有价值可言.
你确实永远不会到达你似乎担心的循环.
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |