1. 类的继承
类之间可以存在继承关系,又称父子关系,父类又称为基类,子类又称为派生类。父子类之间有以下特点:
- 子类拥有父类的所有属性和行为。
- 子类对象可以当父类对象使用,可增加父类没有的属性和方法。
- 子类对象可以直接初始化为父类对象。
- 子类对象可以直接赋值给父类对象。
继承的形式如下:
class Parent
{
...
};
class Child : public Parent
{
...
};
以上为公有属性继承,表示子类对父类的成员访问级别保持不变,这也是最常用的继承属性。
- 实验:
class Parent
{
private:
int mVar;
public:
int GetmVar()
{
return mVar;
}
void SetmVar(int num)
{
mVar = num;
}
};
class Child : public Parent
{
};
int main(int argc, char *argv[])
{
Child obj;
obj.SetmVar(5);
cout << "obj.GetmVar() = " << obj.GetmVar() << endl; // obj.GetmVar() = 5
}
2. 继承中的访问级别
在封装篇中提到,除了公有属性 public 与私有属性 private 之外,还有保护属性 protected。保护属性介于公有属性与私有属性之间,是专门为了继承而设置的。
父类中保护属性的成员,在子类中能直接访问,除此之外均不可直接访问。
- 实验:
class Parent
{
protected:
int mVar;
public:
int GetmVar()
{
return mVar;
}
};
class