你需要一个指针的指针,以创建一个[普通] 2维数组 所以
int ** const e;
然后构造函数可以工作,如:
e = (int**) malloc(sizeof(int**) * a);
for(int i=0;i<a;++i) {
e[i] = (int*) malloc(sizeof(int*) * b);
}
你的下一个问题是“如何初始化常量“。对于这一点,你可以参考答案在这里: how to initialize const member variable in a class C++
实现这一点,把inittializer代码的函数:
initConstArray(const int** const a, int r, int c) {
e = (int**) malloc(sizeof(int**) * a);
for(int i=0;i<r;++i) {
e[i] = (int*) malloc(sizeof(int*) * b);
for(int j = 0;j < c; ++j) {
e[i][j] = a[i][j];
}
,并从构造函数初始化列表中调用这个函数:
A(int **a, int r, int c) : initConstArray(a, r, c) {
}
,如果你想要的任何预置的矩阵功能,外观到像征 – chris 2014-12-04 01:48:00
库,但在这个项目中我不想使用任何库 – Cieja 2014-12-04 01:49:26
'memset'是你的朋友,假设你真的只想要一个“空”(这在软件开发中没有真正意义)矩阵。另外,由于“empty”这个词出现在你的问题标题中,而不是在体内,所以我不知道你真正要求什么。 – 2014-12-04 02:08:50