C++在类构造函数初始化数组

就拿下面这段程序来说吧,为什么在给数组monthday[13]初始化时,提示“错误:应输入表达式”,但以前不把它定义成类,直接写在main函数里,就没问题啊,这是什么原因... 就拿下面这段程序来说吧,为什么在给数组monthday[13]初始化时,提示“错误:应输入表达式”,但以前不把它定义成类,直接写在main函数里,就没问题啊,这是什么原因呢?
#include<iostream>
using namespace std;
class CalDate
{
private:
int monthday[13];
public:
CalDate();
};
CalDate::CalDate()
{
monthday[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
//定义闰年每个月的天数,分别保存为monthdayr[1]至monthdayr[12]中
}
展开
 我来答
newlife9090
推荐于2016-03-08 · TA获得超过332个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:304万
展开全部
monthday[13]你这里 不明显就是monthday[13] = 后面那个值吗?
数组只有前面声明定义一起的时候才能 像你那么定义
monthday[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
这句话等于是给monthday第13号赋值~ 当然是错的~
在构造函数里
这样只能一个一个定义了~
笑引幽
2011-08-28 · TA获得超过393个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:162万
展开全部
monthday[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
这样的写法只能在定义数组时使用,你已经定义好了数组,
你在这样写“monthday[13]“就变成一个数组里面的元素了,而不代表数组,而且还是越界的元素。。汗。你写 monthday[13] = 1;会编译成功,但是运行会出错。因为他是越界的。。汗。
即使你在main函数里先定义一个数组,在这样赋值。。那都是错误的,不可能是对的。
你只能白数组元素一个一个的赋值了,不能这样写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式