const成员函数

来源:互联网 发布:淘宝文案岗位职责 编辑:程序博客网 时间:2024/06/06 01:41

现在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
classDate
{
private:
    intm_nMonth;
    intm_nDay;
    intm_nYear;
 
    Date() { } // private default constructor
 
public:
    Date(intnMonth, intnDay, intnYear)
    {
        SetDate(nMonth, nDay, nYear);
    }
 
    voidSetDate(intnMonth, intnDay, intnYear)
    {
        m_nMonth = nMonth;
        m_nDay = nDay;
        m_nYear = nYear;
    }
 
    intGetMonth() { returnm_nMonth; }
    intGetDay()  { returnm_nDay; }
    intGetYear() { returnm_nYear; }
唯一的非构造函数的成员函数不能修改成员变量(或调用函数修改成员变量)是访问功能。因此,他们应该是。这里是我们的日期类const版本

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
classDate
{
private:
    intm_nMonth;
    intm_nDay;
    intm_nYear;
 
    Date() { } // private default constructor
 
public:
    Date(intnMonth, intnDay, intnYear)
    {
        SetDate(nMonth, nDay, nYear);
    }
 
    voidSetDate(intnMonth, intnDay, intnYear)
    {
        m_nMonth = nMonth;
        m_nDay = nDay;
        m_nYear = nYear;
    }
 
    intGetMonth() const{ returnm_nMonth; }
    intGetDay() const{ returnm_nDay; }
    intGetYear() const{ returnm_nYear; }
};

0 0
原创粉丝点击