果所有的成员函数都在类体内定义,则实现部分可以省略。
下面给出一个日期类定义的例子:
class TDate
{
public:
void SetDate(int y, int m, int d);
int IsLeapYear();
void Print();
private:
int year, month, day;
};
//类的实现部分
void TDate::SetDate(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
int TDate::IsLeapYear()
{
return(year%4==0 && year%100!=0) || (year%400==0);
}
void TDate::Print();
{
cout<<year<<"."<<month<<"."<<day<<endl;
}
这里出现的作用域运算符::是用来标识某个成员函数是属于哪个类的。
该类的定义还可以如下所示:
class TDate
{
public:
void SetDate(int y, int m, int d)
{year=y; month=m; day=d;}
int IsLeapYear()
{return(year%4==0 && year%100!=0) || (year%400==0);}
void Print()
{cout<<year<<"."<<month<<"."<<day<<endl;}
private:
int yeay, month, day;
}
这样对成员函数的实现(即函数的定义)都写在了类体内,因此类的实现部分被
省略了。如果成员函数定义在类体外,则在函数头的前面要加上该函数所属类的标
识,这时使用作用域运算符::。
定义类时应注意的事项