#include<iostream>
#include <iomanip>
using namespace std;
class Array //创建Array类
{
private:
int a[4][4]; //新创建一个数组装传入的数据
public:
Array(int a1[][4],int n);
friend void xuanzhuan(Array& b); //定义顺时针翻转
void show();
};
Array::Array(int a1[][4], int n) //通过遍历给Array内的b[][]赋值
{
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
a[i][j] = a1[i][j];
}
cout << endl;
}
}
void xuanzhuan(Array& b)
{
int i, j, t;
int c[4][4];
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
{
c[i][j] = b.a[i][j];
}
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
{
b.a[i][j] = c[3 - j][i];
}
}
void Array:: show()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
cout << setw(4) << right << a[i][j];
}
cout << endl;
}
}
int main()
{
int b[][4] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
cout << "next" << endl;
}
Array test(b);
test.show();
xuanzhuan(test);
test.show();
return 0;
}
因为你的构造函数是2个参数,但是在main函数中,你只写了1个参数,编译器找不到合适的构造函数。
把main函数中的 Array test(b); 改成 Array test(b,4); 就可以了
Array::Array(int a1[][4], int n) 类构造函数定义了 a1[][4]和 n两个参数
你 test初始化调用时少传递的一个参数n; 改成
Array test(b,4);
#include<iostream>
#include <iomanip>
using namespace std;
class Array //创建Array类
{
private:
int a[4][4]; //新创建一个数组装传入的数据
int len;
public:
Array(int a1[][4],int n);
friend void xuanzhuan(Array& b); //定义顺时针翻转
void show();
};
Array::Array(int a1[][4], int n) //通过遍历给Array内的b[][]赋值
{
int i, j;
len = n;
for (i = 0; i < len; i++)
{
for (j = 0; j < 4; j++)
{
a[i][j] = a1[i][j];
}
cout << endl;
}
}
void xuanzhuan(Array& b)
{
int i, j, t;
int c[4][4];
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
{
c[i][j] = b.a[i][j];
}
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
{
b.a[i][j] = c[3 - j][i];
}
}
void Array:: show()
{
for (int i = 0; i < len; i++)
{
for (int j = 0; j < 4; j++)
{
cout << setw(4) << right << a[i][j];
}
cout << endl;
}
}
int main()
{
int b[][4] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
cout << b[i][j] << endl;
}
Array test(b,4);
test.show();
xuanzhuan(test);
test.show();
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!