C++面向对象程序设计

基础知识 一个类的结构

class Stack { public: bool push( const string& ); int size() { return _stack.size(); }; private: vector _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指针 【C++面向对象程序设计】指向当前class,类型为class_name*

    推荐阅读