基础知识

一个类的结构

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*


子非鱼
1 声望0 粉丝

CS毕业生,现就职于上海某自动驾驶公司


« 上一篇
C++函数