C++类和对象知识点整理六-----多继承

来源:互联网 发布:一个简单的python程序 编辑:程序博客网 时间:2024/05/22 06:16
24、C++类的多继承
派生类都只有一个基类,称为单继承。除此之外,C++也支持多继承,即一个派生类可以有2个或者多个基类。


b.多继承的缺点
多继承容易让代码逻辑复杂,思路混乱,一直备受争议,中小型项目中较少使用,后来的Java,c#,PHP等干脆取消了多继承


c.多继承的语法也很简单,将多个基类用逗号隔开即可,列如以声明了类A,类B,类C,那么可以这样来声明派生类D:
class D:public A,private B,protected C{
//类D新增加的成员
}


D是多继承形式的派生类,她是以公有的方式继承A类等。D根据不同的继承方式获取A,B,C中的成员,确定他们在派生类中的访问权限。


d.多继承形式下的构造函数和单继承形式基本相同,知识要在派生类的构造函数中调用多个基类的构造函数如:
D(形参列表): A(实参列表), B(实参列表), C(实参列表){
    //其他操作
}
基类构造函数的调用顺序和和它们在派生类构造函数中出现的顺序无关,而是和声明派生类时基类出现的顺序相同。仍然以上面的 A、B、C、D 类为例,即使将 D 类构造函数写作下面的形式:
D(形参列表): B(实参列表), C(实参列表), A(实参列表){
    //其他操作
}
那么也是先调用 A 类的构造函数,再调用 B 类构造函数,最后调用 C 类构造函数。


f:命名冲突
当2个或者多个积累中有同名的成员时 ,如果直接访问该成员,就会产生命名冲突,编译器不知道使用哪一个基类的成员,这个时候需要在成员名字前面加上类名和域解析符::,以显式的指明使用哪一个类的成员,消除2义性。









原创粉丝点击