static、const和static const

时间:2023-03-09 00:09:30
static、const和static const

http://blog.****.net/rainkin1993/article/details/8068558

#include<iostream>
using namespace std;
class Year{
int y;
static const int InitY; public:
Year()
{
y=InitY;
};
int year() const
{
return y;
};//const成员函数
void add_year(int i)
{
y=year()+i;
};
};
const int Year::InitY=;
int main()
{
Year y1; Year* const py1=new Year();
y1.add_year();
py1->add_year();
cout<<y1.year()<<','<<py1->year()<<endl;
return ;
}

如果加个const int bb的常数据成员,该怎样给它定义??

常数据成员,C++规定只能通过构造函数的成员初始化列表对常数据成员进行初始化。

如:

class Date{

Date(int y,int m,int d);

void showDate();

private:

const int year;

const int month;

const int day;

};

Date::Date(int y,int m,int d):year(y),month(m),day(d)

{}//采用成员初始化列表,对数据成员赋初值。

如以下形式的构造函数是错误的:

Date::Date(int y,int m,int d)

{

year=y; month=m;

day=d;

}

C++规定只能通过构造函数的成员初始化列表对常数据成员进行初始化。