1)继承的作用
子类继承父类的属性和行为,对于类似功能,只用为代码添加新特性,体现了代码复用。
2)继承的实现
class A :public B
{
}
A:子类
B:父类
冒号指出A类的父类为B类
public:继承方式为共有继承
结果:通过A类可以直接访问到B类的共有成员,对于B类的私有属性,可以通过调用B类的共有方法来访问。
3)子类与父类的特殊关系
父类指针可以在不进行显示类型转换的情况下指向子类对象;
父类引用可以在不进行显示类型转换的情况下引用子类对象。
class B
{
public:
string name = "Jack";
string getName()
{
return name;
}
}
class A:public B
{
string upperName()
{
return "JACK";
}
}
int main()
{
A m_A;
B *pt = &m_A;//父类指针,指向子类对象
B &rt = m_A;//父类引用,引用子类对象
pt->getName();
rt.getName();
}
然而,父类指针或者父类引用只能调用父类方法,不能调用子类新加的方法 。
父类的析构函数应写成虚函数,防止父类指针释放子类对象。