现在getvalue()了const成员函数,这意味着我们可以称它为任何const对象。
const成员函数的类定义之外声明必须指定在函数原型中类的定义和代码文件中的函数原型const关键字:
重载函数与一个const和非const版本通常是当返回值需要不同的常量。在上面的例子中,对getvalue() const版本返回const引用,而非const版本返回一个非const引用。
让我们使我们的日期类的成员函数常量可以使用const对象看日期:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class
Date { private : int
m_nMonth; int
m_nDay; int
m_nYear; Date()
{ } //
private default constructor public : Date( int
nMonth, int
nDay, int
nYear) { SetDate(nMonth,
nDay, nYear); } void
SetDate( int
nMonth, int
nDay, int
nYear) { m_nMonth
= nMonth; m_nDay
= nDay; m_nYear
= nYear; } int
GetMonth() { return
m_nMonth; } int
GetDay() { return
m_nDay; } int
GetYear() { return
m_nYear; } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class
Date { private : int
m_nMonth; int
m_nDay; int
m_nYear; Date()
{ } //
private default constructor public : Date( int
nMonth, int
nDay, int
nYear) { SetDate(nMonth,
nDay, nYear); } void
SetDate( int
nMonth, int
nDay, int
nYear) { m_nMonth
= nMonth; m_nDay
= nDay; m_nYear
= nYear; } int
GetMonth() const
{ return
m_nMonth; } int
GetDay() const
{ return
m_nDay; } int
GetYear() const
{ return
m_nYear; } }; |