您的位置:首页 > 编程语言 > C语言/C++

c++ primer笔记 将关键字 const 加在形参表之后,就可以将成员函数声明为常量:

2012-05-24 20:25 232 查看
将关键字 const 加在形参表之后,就可以将成员函数声明为常量:

double avg_price() const;

const 成员不能改变其所操作的对象的数据成员。const 必须同时出现在声

明和定义中,若只出现在其中一处,就会出现一个编译时错误。

可以在类定义体内部指定一个成员为 inline,作为其声明的一部分。或者,

也可以在类定义外部的函数定义上指定 inline。在声明和定义处指定 inline

都是合法的。在类的外部定义 inline 的一个好处是可以使得类比较容易阅读。

从 const 成员函数返回 *this

在普通的非 const 成员函数中,this 的类型是一个指向类类型的 const

指针(第 4.2.5 节)。可以改变 this 所指向的值,但不能改变 this 所保存

的地址。在 const 成员函数中,this 的类型是一个指向 const 类类型对象的

const 指针。 既不能改变 this 所指向的对象, 也不能改变 this 所保存的地址。

不能从 const 成员函数返回指向类对象的普通引用。const 成

员函数只能返回 *this 作为一个 const 引用。

可变数据成员

有时(但不是很经常),我们希望类的数据成员(甚至在 const 成员函数

内)可以修改。这可以通过将它们声明为 mutable 来实现。

562

可变数据成员(mutable data member)永远都不能为 const,甚至当它是

const 对象的成员时也如此。因此,const 成员函数可以改变 mutable 成员。

要将数据成员声明为可变的,必须将关键字 mutable 放在成员声明之前:

class Screen {

public:

// interface member functions

private:

mutable size_t access_ctr; // may change in a const members

// other data members as before

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: