C++中的派生类相关内容,结构体、共同体内容

Posted on 2018-09-14 14:00  yacbo  阅读(774)  评论(0编辑  收藏  举报

1.构造函数

  构造函数是为了初始化类中的数据成员。对于派生类而言,不会继承基类的构造函数,为完成派生类数据成员的初始化,需要在派生类中自己定义构造函数。

  派生类的构造函数要负责调用基类的构造函数。若程序中不显示定义构造函数,则创建派生类对象时会调用编译器提供的默认构造函数。

  总之:基类构造先调用,然后再派生类构造

2.析构函数

  派生类不会继承基类的析构函数。析构函数执行次序与构造函数相反,先要调用派生类的析构函数,然后再调用基类的析构函数

3.继承权限

  基类中的私有成员,派生类不会继承。

4.结构体、共同体

  结构体struct:把不同类型的数据组合成一个整体,自定义类型。
  共同体union:使几个不同类型的变量共同占用一段内存。

  struct和union都有内存对齐,结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。
关于内存对齐,先让我们看四个重要的基本概念:1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。3.指定对齐值:#pragma pack(n),n=1,2,4,8,16改变系统的对齐系数4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。

 

Copyright © 2024 yacbo
Powered by .NET 8.0 on Kubernetes