成员函数与const
对于不改变类内部成员的成员函数,我们都要在函数后面加上const,对于会改变数据成员的函数则不加const。对成员函数加上const有明确的限制行为:调用该成员函数不会改变内部数据成员。但是,如果const函数的返回值是引用或指针呢?这种情况到底要不要对返回值加上const呢?先来看一段示例:
代码示例与结果
#include <iostream>
using namespace std;
struct Node {
Node* next;
int value;
Node() : next(0), value(0){
}
};
class TestList {
typedef Node* node_ptr;
typedef const Node* const_node_ptr;
private:
node_ptr header;
public:
TestList() : header(0){
}
TestList(node_ptr n) : header(n){
}
void print() const {
node_ptr tmp = header;
while (tmp != 0){
cout << tmp->value << (tmp->next == 0 ? "" : ", next: ");
tmp = tmp->next;
}