接着说类。
拷贝构造函数——左值引用
见《C++ 引用》
上一节说了,我们可以在一个类里面定义构造函数。
除了普通构造函数之外,我们还可以定义拷贝构造函数。
像这样:
sc (const sc&other){do_sth;}
作用是用一个SC类型的其他变量来初始化这个变量。
移动构造函数——右值引用(C++11)
见《C++ 引用进阶》
像这样:
sc (sc&&other){do_sth;}
我们可以直接从other接管资源,从而为程序赢得许多宝贵的时间,大大提高效率。
类的继承
如果我们先写了一个类,后来又写了一个类想要沿用前者的某些特性。
这时就要用到——继承。
举个栗子:
SC base{
protected:
int a; }; SC derived:private base{
private:
base x;
public:
derived(){x.a=0;}
};
在外界看来,base类里的a是不可以访问的。但是,因为derived继承了base,所以其下的函数便可以访问或修改a。
这个private base前的private是什么意思呢?
这个表示继承的base对象不能被外界对象与继承了derived的类所使用。
若base前为public,表示能被外界所有对象访问;
若base前为protected,表示只能被继承了derived的类所使用。
在一对继承关系中,被继承的类是基类,继承基类的类是派生类。