#include<iostream>
#include<vector>
using namespace std;
class Triangular
{
public:
int length()const
{
return _length;
}
int beg_pos()const
{
return _beg_pos;
}
int elem(int pos)const;
private:
int _length;
int _beg_pos;
int _next;
static vector<int>_elems;
};
//const紧接于函数参数列表之后。凡是在class主体以外定义者,如果它是一个const member function,则必须在声明和定义中同时指定const
//编译器会检查声明为const的member function,看看是否更改class object内容
int Triangular::elem(int pos)const
{
return _elems[pos - 1];
}
//设计class时,鉴定const member function是一件重要的事
class val_class
{
public:
val_class(const BigClass &v):_val(v){}
//由于member function可以根据const与否而重载,因此可提供两份定义
const BigClass &val()const { return _val; }//一个const版本
BigClass &val() { return _val; }//一份非const版本
private:
BigClass _val;
};