c++基础问题 求助【实在想不出错哪了 ` -`! 】

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:26:43
#include<iostream>
#include <string>
using namespace std;

class Calculator
{
private:
int a[5][5];
public:
void Accept();
void Display();
};

int main()
{
Calculator calObj;
calObj.Accept();
calObj.Display();

}

void Calculator::Accept()
{
a[5][5] = { {1,3, 5, 7, 20}, //****这里报********
{112,3, 52,72,220},
{122,32,53,73,203},
{141,4, 45,47, 240},
{114,34, 54,74,420}
};

}

void Calculator::Display()
{
for(int i =0;i<5;i++)
for(int j =0;j<5;j++)
cout<<a[i][j]<<" ";

}
报错:
error C2059: syntax error : '{'
e:\projects\pro_2\pro_2\a.cpp(30) : error C2143: syntax error : missing ';' before '{'
e:\projects\pro_2\

是初学的吧!!!
************************ 还是兄弟我来给你讲讲课吧 ************************

class Calculator
{
private:
int a[5][5];
public:
void Accept();
void Display();
};
//你上面的数据成员和成员函数都是auto变量,不是静态变量,那么你要注意几点:
1。他们在对象建立之前,没有获得分配空间。
2。根据1,在对象建立之前,他们不能进行实际的赋值操作(成员函数里对他们的赋值语句,不在此列。这里主要是说他们不能像静态变量那样赋值)。

//“ a[5][5] = { {1,3, 5, 7, 20}, //****这里报********”
肯定错了!!!
我问你,这里你想作什么??赋值??
对,你确实在赋值,
但你觉得a[5][5]在这里是一个数,还是表示25个数,你想想??
要是表示25个数,那么a[5][4],又怎么解释,24个数??还是5*4=20个数阿。

肯定只表示一个数了,给数组赋值,有两种方式:
1,一般在定义时候,可以直接赋值( a[5][5] = {1,3, 5, 7, 20}),但在类里就不行阿。
但在类里,可以在定义对象时初始化。这需要有构造函数,不知道你学了没。
2,在定义之外,只能通过循环语句等来依次给他们赋值了。
3,但你那么多数字,写进去代码够长,你也烦,够累吧。要是更多怎么办,要文件读入方式,值得考虑吧(学过了吗,不会就去看看文件操作吧)。

对于你的程序:(按照你的原意,在那么只能这样作了!!!)
void Calculator::Accept()
{
a[0][0] = 1;
a[0][1]=3;
a[0][2]= 5;
a[0][3]= 7;/*这样继续下去,就没错了*/
.......
}
但你可以用我上面提到的其他方