C++ primer plus读书笔记(四)

公有派生

使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。

可以使用初始化列表语法指明要使用的基类构造函数,否则将使用默认的基类构造函数。

基类指针或引用可以指向或引用派生类对象,但基类只能使用基类的方法。但不可以将基类对象和地址赋给派生类引用和指针。

如果没有使用关键字virtual,程序将根据引用类型或指针类型选择方法;如果使用了virtual,程序将根据引用或指针指向的对象的类型来选择方法。在基类方法的声明中使用关键字virtual可使该方法在基类以及所有的派生类中是虚的

在派生类重新定义的方法中使用作用域解析运算符来调用基类方法。

友元不能是虚函数,因为友元不是类成员,只有成员才能是虚函数。

如果在派生类中重新定义函数,会隐藏同名的基类方法。

如果重新定义继承的方法,应确保与原来的原型完全相同,但如果返回类型是基类引用或指针,则可以修改为指向派生类的指针或引用。

如果基类声明被重载了,则应在派生类中重新定义所有的基类版本。

关键字protected与private相似,在类外只能使用公有类成员访问,派生类的成员可以直接访问基类的保护成员,但不能直接访问基类的私有成员。

c++通过使用纯虚函数提供未实现的函数,纯虚函数声明的结尾处为=0。当类声明中包含纯虚函数时,则不能创建该类的对象。



你可能感兴趣的:(读书笔记)