C++知识储备

本文详细探讨了C++中的内存管理,包括内存分区、内存对齐、malloc/free与new/delete的区别,以及static关键字的应用。同时,深入讲解了类与数据抽象的概念,如构造函数和析构函数的调用顺序,以及继承方式的权限问题。通过对这些基础知识的解析,帮助读者深化对C++编程的理解。
摘要由CSDN通过智能技术生成

记录C++语言知识学习的过程


C++语言知识


一、C++语言基础

1.内存分区

可分为四个大类:代码区、全局/静态存储区、堆区、栈区(低地址向高地址递增)

  • 代码区(.text段)
    存储函数的执行代码,不可修改,但可执行;编译后的二进制代码存放在此处;存放函数体(类的成员函数、全局函数);
  • 全局/静态存储区
    存放全局变量、静态变量和字符串常量;程序编译时分配,程序运行结束由操作系统自动回收;
  • 堆区(heap)
    动态申请的内存空间,由malloc分配的内存块;由程序员控制堆内存的分配和释放,如果程序结束后还没有释放,则由系统自动释放;可动态扩张和缩减,分配内存是扩张,释放内存缩减,方向为从低地址向高地址
  • 栈区(stack)
    存放函数的局部变量、函数形参和返回地址等,由编译器自动回收和释放;方向为从高地址指向低地址;

2.内存对齐

3.内存碎片

malloc、free、new、delete的区别,为什么需要有new、delete?

4.static关键字的作用、场景


二、类与数据抽象

1.构造函数与析构函数的调用时机

构造函数调用顺序:

  • 基类成员对象的构造函数
  • 基类的构造函数
  • 派生类成员对象的构造函数
  • 派生类的构造函数

析构函数的调用顺序:

  • 派生类的析构函数
  • 派生类的对象成员的析构函数
  • 基类的析构函数
  • 基类的对象成员的析构函数

2.类之间继承方式的权限问题

继承方式:public、protected、private

  • public继承:基类成员在派生类中的访问权限保持不变,即基类成员的访问权限,在派生类中仍然保持不变(public还是public)
  • private继承:基类成员在派生类中的访问权限全变成私有(private)权限;
  • protected继承:基类成员权限为public在派生类中的访问权限变为protected;基类成员权限为private和protected在派生类中的访问权限保持不变
基类成员权限public继承private继承protected继承
publicpublicprivateprotected
privateprivateprivateprivate
protectedprotectedprivateprotected

3.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值