基础知识
一个类的结构
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*