类接口
参数类型
注意代码中使用了枚举量mar的限定名Month::mar。我们没有用Month::mar,因为Month不是一个
对象(而是一个类型),而mar也不是一个数据成员(而是一个枚举量-----一个符号常量)。
我们在类名、枚举名或名字空间名后使用::,而在对象后使用.(点)。
拷贝
默认构造函数
未初始化的变量可能会成为错误之源。为了解决这个问题,我们可以用构造函数来保证
类的每个对象都被初始化。
Data d0; //错误:没有初始化值
Data d1{}; //错误:空的初始化值
Data d2{1998}; //错误:参数太少
Data d3{1,2,3,4}; //错误:参数太多
Data d4{1,"jan",2}; //错误:参数类型错误
Data d5{1,"Month::jan",2}; //正确:使用3个参数的构造函数
Data d6{d5}; //正确:使用拷贝构造函数
const 成员函数
在一个成员函数声明中,我们将const放置参数列表右边,就表示这个成员函数可以在
一个常量对象上调用。一旦将一个成员函数声明为const,编译器会帮助我们保证这个成员
函数不会修改对象。
in Date::day() const
{
++d; //错我:试图从常量成员函数中改变对象
return d;
}
类成员和辅助函数
输入输出流
输入和输出