————————————————————
制作一个创建二维数组的函数
————————————————————
template<typename T>
void make2DArray(T** &x, int rowNum, int colNum)
{
x = new T*[rowNum];
for(int i = 0; i < rowNum; ++i)
{
x[i] = new T[colNum];
}
}
template<typename T>
void delete2DArray(T** &x, int rowNum)
{
for(int i = 0; i < rowNum; ++i)
{
delete[] x[i];
}
delete[] x;
x = nullptr;
}
使用的时候可以用try块把make2DArray包起来
这样的好处是可以让函数的代码简单一点,然后把处理数据和处理错误的代码分离开来
坏处是只有写函数的人才知道需要try…catch,使用的人需要阅读说明书才知道。。。
#include <iostream>
#include <cstddef>
template<typename T>
void make2DArray(T** &x, int rowNum, int colNum)
{
x = new T*[rowNum];
for(int i = 0; i < rowNum; ++i)
{
x[i] = new T[colNum];
}
}
template<typename T>
void delete2DArray(T** &x, int rowNum)
{
for(int i = 0; i < rowNum; ++i)
{
delete[] x[i];
}
delete[] x;
x = nullptr;
}
int main()
{
int **a;
try
{
make2DArray(a, 3, 4);
}
catch (...)
{
return 1;
}
a[1][2] = 20;
std::cout