早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于类的定义中的初始化classDate{public:Date();voidinput();voidadd();voidminus();voidoutput();private:intyear,mouth,date;intday[13]={31,31,28,31,30,31,30,31,31,30,31,30,31};};这是我定义的一个类,其中intday[13]={31,31,28,

题目详情
关于类的定义中的初始化
class Date
{
public:
Date();
void input();
void add();
void minus();
void output();
private:
int year,mouth,date;
int day[13] ={31,31,28,31,30,31,30,31,31,30,31,30,31};
};
这是我定义的一个类,其中int day[13] ={31,31,28,31,30,31,30,31,31,30,31,30,31};
这句话,我在类中直接初始化数组:day[13].这样行不行呀.但若行的话,我的下面这个程序为什么总是报错呀?
程序如下:::
# include "iostream.h"
class Date
{
public:
Date();
void input();
void add();
void minus();
void output();
private:
int year,mouth,date;
int day[13] ={31,31,28,31,30,31,30,31,31,30,31,30,31};
};
Date::Date()
{
year = 0;
mouth = 0;
date = 0;
}
void Date::input()
{
coutyear>>mouth>>date;
}
void Date::output()
{
cout
▼优质解答
答案和解析
定义类只是定义了一种类型,在类中是不能对变量进行初始化的
只有类的实例才可以对变量做初始化操作
在类体内用static定义
static int day[13] ={31,31,28,31,30,31,30,31,31,30,31,30,31};
报错吗?
那你就把它定义成全局变量吧,既然是一个月的天数,当然是不能被修改的了!完全可以用const限定,至于闰年与非闰年二月的天数不同,这个不用担心
把你的一维数组改成二维数组,如下
int day[2][31]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{1,31,29,31,30,31,30,31,31,30,31,30,31}};
现在才看到,你那个怎么那样定义啊?
int day[13] ={31,31,28,31,30,31,30,31,31,30,31,30,31};
这个一维数组只为了表示某一个月的天数吗?
想了解更多关于static的话链接下面这个地址
【原创答人】