static、const和static const
http://blog.csdn.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=1970; int main() { Year y1; Year* const py1=new Year(); y1.add_year(1); py1->add_year(2); cout<<y1.year()<<','<<py1->year()<<endl; return 0; }
如果加个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++规定只能通过构造函数的成员初始化列表对常数据成员进行初始化。
作者:wj704
出处:http://www.cnblogs.com/wj204/