因为const对象是不能修改的,所以必须在声明对象时进行初始化。对于类的const数据成员,一定要用类的构造函数提供初始化该数据成员的初始化值。 #include <iostream> #include <stdio.h> using namespace std; class MyDate{ public: MyDate(int n = 0 , int y = 0 , int m = 0 , int d = 0) ; ~MyDate() ; int getn(void) ; int gety(void) ; int getm(void) ; int getd(void) ; void MyPrint(void) const ; protected: private: int num ; const int MyYear ; const int MyMonth ; const int MyDay ; }; MyDate :: MyDate(int n , int y , int m , int d ):MyYear(y) , MyMonth(m) , MyDay(d) { num = n ; } MyDate :: ~MyDate(){ } int MyDate :: getn(void) { return num ; } int MyDate :: gety(void) { return MyYear ; } int MyDate :: getm(void) { return MyMonth ; } int MyDate :: getd(void) { return MyDay ; } void MyDate :: MyPrint(void) const { cout <<"Date "<<num<<" : "<<MyYear<<"-"<<MyMonth<<"-"<<MyDay<<endl ; } int main() { MyDate Date1(1,2010,8,12) ; Date1.MyPrint() ; return 0; }