C++知识总结(17)

来源:互联网 发布:debian mysql 编辑:程序博客网 时间:2024/06/05 23:00

77 有哪些不能自动继承的成员函数

构造函数,析构函数,拷贝构造函数,析构函数。

78 C++接口继承与实现继承的区别

    非虚函数:强制实现继承
虚函数:可视继承
纯虚函数:接口继承

79 基类与派生类之间转换的情况

a) 对象的转换:

1,派生类对象到基类对象的转换: 在用户代码中,只有公有继承时可以转换。在派生类成员函数中,均可进行转换。

2,基类对象到派生类对象不可转换。

b) 指针或引用的转换

1, 派生类指针或者引用到基类的指针或者引用的转换:

在用户代码中,只有公有继承时可以进行转换。

在派生类成员函数中,均可进行转换。

2, 基类指针或引用到派生类指针或者引用的转换(一般是无意义的)

在用户代码或者派生类成员函数代码中,可用static_castdynamic_castreinterpret_cast进行转换,其中dynamic_cast只有在基类中有定义虚函数时才能通过。

80 多继承和多重继承的区别

多继承是指一个子类继承多个父类,多继承对父类的个数没有限制,继承方式可以是公有继承,保护继承,和私有继承。不写继承方式默认私有继承。

多重继承和多继承不同,当B类从A类派生,C类从B类派生,此时称为多重继承。

    当实例化子类的时候,会首先依次调用所有基类的构造函数,最后调用该子类的构造函数。销毁该子类时,则相反。无论继承的有多少层,只要他们保持直接或者间接的继承关系。那么子类都可以与其直接或间接父类构成is a的关系。

原创粉丝点击