类成员函数声明出的const以及某函数参数中的const

来源:互联网 发布:郭德纲徒弟排名 知乎 编辑:程序博客网 时间:2024/05/16 15:02

以下知识来源于Essential C++  (P110)

#include <iostream>
#include <vector>

using namespace std;

class Triangular
{
private:
 int _length;
 int _beg_pos;
 int _next;
public:
 int beg_pos()const{return _beg_pos;}
 //编译会出错,因为在下面的sum函数中,编译器调用的是一个非
 //const类成员函数;
 //int beg_pos(){return _beg_pos;}
 //编译会出错,因为声明为const确又改变了_beg_pos的值
 //int beg_pos()const{return _beg_pos++;}
 
 int length()const{return _length;}
 int next()const{return _next;}
};

int sum(const Triangular &trian)
{
 int beg_pos = trian.beg_pos();
 int length = trian.length();
 int sum=0;
 for(int ix=0;ix<length;++ix)
 {
     ...........
 }
 return sum;
}

int main()
{
 
 return 0;
}