学习C++笔记290

简介: C++ 继承

多继承(环状继承),A->D, B->D, C->(A,B),例如:

class D{......};

class B:public D{......};

class A:public D{......};

class C:public B,public A{.....};

这个继承会使D创建两个对象,要解决上面问题就要用虚拟继承格式

格式:class 类名: virtual 继承方式 父类名

class D{......};

class B:virtualpublic D{......};

class A:virtualpublic D{......};

class C:public B,public A{.....};

虚继承--(在创建对象的时候会创建一个虚表)在创建父类对象的时候

A:virtualpublic D

B:virtualpublic D

实例:

#include<iostream>


usingnamespace std;

//基类


class D

{

public:

   D(){cout<<"D()"<<endl;}

   ~D(){cout<<"~D()"<<endl;}

protected:

   int d;

};


class B:virtualpublic D

{

public:

   B(){cout<<"B()"<<endl;}

   ~B(){cout<<"~B()"<<endl;}

protected:

   int b;

};


class A:virtualpublic D

{

public:

   A(){cout<<"A()"<<endl;}

   ~A(){cout<<"~A()"<<endl;}

protected:

   int a;

};


class C:public B,public A

{

public:

   C(){cout<<"C()"<<endl;}

   ~C(){cout<<"~C()"<<endl;}

protected:

   int c;

};


int main()

{

   cout <<"Hello World!"<< endl;

   C c;   //D, B, A ,C

   cout<<sizeof(c)<<endl;

   return0;

}

  • 1、与类同名的函数是构造函数。
  • 2、~ 类名的是类的析构函数。
目录
相关文章
|
19小时前
|
算法 编译器 C语言
从C语言到C++⑩(第四章_模板初阶+STL简介)如何学习STL(下)
从C语言到C++⑩(第四章_模板初阶+STL简介)如何学习STL
4 0
|
19小时前
|
编译器 C语言 C++
从C语言到C++①(第一章_C++入门_上篇)C++学习介绍(命名空间和C++输入输出流)(下)
从C语言到C++①(第一章_C++入门_上篇)C++学习介绍(命名空间和C++输入输出流)
5 0
|
19小时前
|
Java 编译器 C#
从C语言到C++①(第一章_C++入门_上篇)C++学习介绍(命名空间和C++输入输出流)(上)
从C语言到C++①(第一章_C++入门_上篇)C++学习介绍(命名空间和C++输入输出流)
11 0
|
6天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
10 1
|
6天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
17 0
|
6天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
18 0
【C++】string学习 — 手搓string类项目
|
6天前
|
编译器 C语言 C++
【C++入门学习指南】:函数重载提升代码清晰度与灵活性
【C++入门学习指南】:函数重载提升代码清晰度与灵活性
25 0
|
19小时前
|
存储 编译器 C语言
从C语言到C++_11(string类的常用函数)力扣58和415(中)
从C语言到C++_11(string类的常用函数)力扣58和415
5 0
|
19小时前
|
存储 C语言 C++
从C语言到C++_11(string类的常用函数)力扣58和415(上)
从C语言到C++_11(string类的常用函数)力扣58和415
5 0
|
19小时前
|
存储 编译器 程序员
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针(下)
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针
4 0