C++ 模板 template

#include <iostream>

using namespace std;

/*
模板的作用:
    1. 不用声明类型, 传什么进来就是什么类型, 返回也是什么类型
    2. 方法封装起来, 可以当公共类使用, 方便

*/


template <class T>

void mark2dArray(T ** &x, int numberofRows, int numberofColumns){
  x = new T * [numberofRows];
  for (int i = 0; i < numberofRows; i++) {
    x[i] = new T [numberofColumns];
  }
}

// template 只针对下面函数、对象有效, 所以这里要在声明一次

template <class T> void delete2dArray(T ** &x, int numberofRows){ for (int i = 0; i < numberofRows; i++) { delete [] x[i]; } delete [] x; x = NULL; } int main(int argc, char const *argv []){ int rowsNum = 5; int columnsNum = 5; int ** a; mark2dArray(a, rowsNum, columnsNum); a[2][3] = 323; printf("%d\n", a[2][3]); delete2dArray(a, rowsNum); return 0; }

猜你喜欢

转载自www.cnblogs.com/renfanzi/p/9165767.html