服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++的继承和派生你了解吗

C++的继承和派生你了解吗

2022-10-17 13:28qq_24409999 C/C++

这篇文章主要为大家详细介绍了C++继承和派生,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

继承的写法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//父类 基类
class parent
{
};
//子类 派生类
//公有继承
class soon1:public parent
{
   public:
   protected:
};
//保护继承
class son2:protected parent
{
   public:
   protected:
};
//私有继承
class son3:private parent
{
    public:
    protected:
};
//继承和派生
//继承:子类中没有产生新的属性和行为
//派生:派生类中有新的属性和行为产生
class 子类名:继承方式 父类名
{
};
//继承方式  就是权限限定词

继承实质与权限问题 ​

  • 继承的实质:父类的数据和成员子类中有一份​
  • 权限问题:继承方式只会增强父类属性在子类中的权限显示
  public protected private
public继承 public protected 不可直接访问
protected继承 protected protected 不可直接访问
private继承 private protected 不可直接访问
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<iostream>
#include<string>
using namespace std;
class parent
{
public:
    void print()
    {
        cout << name << "\t" << money << endl;
    }
    string& getWide()
    {
        return wide;
    }
protected:
    string name;
    int money;
private:
    string wife;
};
//子类
class son :public parent
{
public:
    void printSon()
    {
        print();
        cout << name<<"\t"<<money<< endl;
        //cout << wife << endl;父类中的私有属性不能直接访问
        cout << getWide() <<endl;//间接通过父类的函数访问
    }
protected:
};
class A
{
public:
    int a1;
protected:
    int a2;
private:
    int a3;
};
class B :public A
{
public:
    //int a1;  
protected:
    //int a2;
private:
    //int a3;不能直接访问
};
class C :protected A
{
public:
protected:
    //int a1;   public 显示protected
    //int a2;
private:
    //int a3;不能直接访问
};
class D :private A
{
public:
    void print()
    {
        cout << a1 << endl;;
        cout << a2<< endl;
    }
protected:
private:
   //int a1;   public 显示protected
    //int a2;
    //int a3;//父类的私有属性不能直接访问
};
//私有继承会导致当前父类 无法在孙子类有任何作用
class F :public D
{
public:
};
int main()
{
    son boy;
    boy.printSon();
    B b;
    b.a1 = 123;
    C c;
    //c.a1 = 12;
    return 0;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容! 

原文链接:https://blog.csdn.net/qq_24409999/article/details/123388122

延伸 · 阅读

精彩推荐
  • C/C++C语言单循环链表的表示与实现实例详解

    C语言单循环链表的表示与实现实例详解

    这篇文章主要介绍了C语言单循环链表的表示与实现,对于学习数据结构与算法的朋友来说很有参考借鉴价值,需要的朋友可以参考下...

    C语言程序设计8482021-01-21
  • C/C++C语言关键字auto与register的深入理解

    C语言关键字auto与register的深入理解

    本篇文章是对c语言关键字auto与register的使用进行了详细的分析介绍,需要的朋友参考下...

    C语言教程网1902020-12-15
  • C/C++c++回调之利用sink示例

    c++回调之利用sink示例

    Sink的本质是利用C++的封装、继承、多态的面向对象来实现,从实现角度来说,更优于函数指针回调,下面是示例...

    C++教程网11352021-01-18
  • C/C++C语言中操作进程信号的相关函数使用详解

    C语言中操作进程信号的相关函数使用详解

    这篇文章主要介绍了C语言中操作进程信号的相关函数使用详解,分别是signal()函数和kill()函数的用法,需要的朋友可以参考下...

    C语言教程网9612021-03-11
  • C/C++利用C语言实现扫雷小游戏

    利用C语言实现扫雷小游戏

    这篇文章主要为大家详细介绍了利用C语言实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    yuelinghou10982021-10-22
  • C/C++C++ 通过指针实现多态实例详解

    C++ 通过指针实现多态实例详解

    这篇文章主要介绍了 C++ 通过指针实现多态实例详解的相关资料,需要的朋友可以参考下...

    C++教程网8832021-05-05
  • C/C++C语言main()函数的参数问题详解

    C语言main()函数的参数问题详解

    这篇文章主要为大家详细介绍了C语言main()函数的参数问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能...

    m0_5994948410182022-10-10
  • C/C++C++中如何修改const变量你知道吗

    C++中如何修改const变量你知道吗

    这篇文章主要为大家详细介绍了C++修改const变量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带...

    heyabo3612022-10-13