基础知识
一个类的结构
class Stack {
public:
bool push( const string& );
int size() { return _stack.size(); };
private:
vector<string> _stack;
};
所有member function都必须在class主体内声明。至于是否要定义可自由决定
如果要在class主体内定义,则该member function自动视为inline函数
如果在class外定义需要加上类名::
,如Stack::pop(string &elem)
构造函数
构造函数名必须与类名相同且没有返回值
Triangular (int len, int bp){
_length = len;
_beg_pos = bp;
}
可以使用成员初始化列表定义
Triangular (int len, int bp): _length(len), _beg_pos(bp) {}
析构函数
释放内存资源,不会有返回值和任何参数
~Matrix(){
delete []_pmat;
}
mutable(可变)和const(不变)
const member function
在参数列表后加const将成员函数声明为const member function,其不可改变class object的内容
int length() const { return _length; } # in class
int Triangular::length() const { return _length; } # out class
mutable data member
对于如计数器等成员变量,通过const member function调用无法对其修改值,可以用mutable
定义该成员变量
this指针
指向当前class,类型为class_name*
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。