C++中单继承和多继承的区别

C++中单继承和多继承的区别

1. 单继承

单一继承是派生类公开、私有或受保护地继承单一基类的继承。在单一继承中,派生类使用单一基类的特性或成员。这些基类成员可以根据继承父类或基类时指定的访问说明符被派生类或子类访问。

C++中单继承和多继承的区别

语法:

Class DerivedClass_name : access_specifier Base_Class
{
    //Class's Body 
};
C++

单继承示例:

#include<iostream>
using namespace std;
class A {
public:
    int k = 1000;
    float salary = 80000;
};
class B : public A {
public:
    float bonus = 8000;
    void ts()
    {
        cout<<"Total salary.."<<(salary + bonus)<<endl;
    }
};
int main()
{
    B b1;
    cout<<"Salary:"<<b1.salary<<endl;
    cout<<"Bonus:"<<b1.bonus<<endl;
    b1.ts();
    return 0;
}
C++

运行结果:

Salary: 80000
Bonus: 8000
total salary..88000
C++

在本例中,A 是基类或父类,B 是派生类或子类。

2. 多重继承

多重继承是派生类获得两个或多个基类的继承。在多重继承中,派生类可以使用继承的基类的共同特征。每个基类都由派生类通过通知每个基类的单独访问说明符来继承。根据继承父类或基类时指定的访问说明符,派生类或子类可以访问基类成员。

C++中单继承和多继承的区别

多重继承示例:

#include<iostream>
using namespace std;
class A {
public:
    float salary = 80000;
};

class B {
public:
    float bonus = 8000;
};

class C : public A, public B {
public:
    void ts()
    {
        cout<<"Total salary.."<<(salary + bonus)<<endl;
    }
};
int main()
{
    C b1;
    b1.ts();
    return 0;
}
C++

运行结果:

Total salary..88000
C++

在本例中,A 和 B 是基类,C 是派生类。

单继承和多继承的区别:

编号 单继承 多继承
1 单一继承是派生类继承单一基类的一种。 多重继承是派生类获得两个或多个基类的继承。
2 在单一继承中,派生类使用单一基类的特性。 在多重继承中,派生类使用继承的基类的联合特征。
3 与多重继承相比,单一继承需要较少的运行时间,因为开销较小。 与单继承相比,由于更多的开销,多继承需要更多的运行时间。
4 单继承非常接近专业化。 相比之下,多重继承非常接近泛化。
5 单继承实现为 Class DerivedClass_name : access_specifier Base_Class{}; 虽然多重继承实现为 Class DerivedClass_name :access_specifier Base_Class1、access_specifier Base_Class2、...{};
6 单继承比多继承简单。 与单继承相比,多继承复杂。
7 单继承可以用任何编程语言实现。 C++支持多重继承,但是任何编程语言都不能实现多重继承(C#,Java不支持多重继承)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册