目录

  • 二、C++
    • 1. C,java,C++区别
    • 2. C++ 对象模型(C++ class底层原理)
      • 2.1 基本对象模型与C++对象模型
      • 2.2 C++ 构造函数模型
      • 2.3 C++继承的底层原理
      • 2.4 C++ RTTI 机制
    • 3. 类 Class
      • 3.1 类关键字,成员(函数,变量)与类作用域
      • 3.2 类的构造函数与析构函数
      • 3.3 类的内存分配
      • 3.4 类指针和类对象的区别
      • 3.5 this指针
      • 3.6 C++ 类切割行为
    • 4. 友元 friend
    • 5. 继承
      • 5.1 派生类构造与析构函数
      • 5.2 派生类继承基类成员的状态变化
      • 5.3 接口继承与实现继承
      • 5.4 虚继承与菱形继承问题
    • 6. 多态
      • 6.1 动态多态
      • 6.2 纯虚函数(抽象类与接口)
      • 6.3 运算符重载
      • 6.4 函数的重载,重写和隐藏
    • 7. 异常安全
      • 7.1 不泄露资源
      • 7.2 不允许数据的破坏
    • 8. C++11新特性
      • 8.1 对原有语法标准的继承及扩充
      • 8.2 移动语义(构造)和右值引用
      • 8.3 新的类功能
      • 8.4 Lambda 表达式
      • 8.5 C++ 标准类型转换 cast
    • 9. C++ I/O (标准输入输出)
      • 9.1 C++ 缓冲区
      • 9.2 标准IO
      • 9.2 文件IO
      • 9.3 串IO
    • 10. C++ SGI STL
      • 10.1 STL 简介
      • 10.2 SGI STL - 空间配置器 allocator
      • 10.3 SGI STL - 迭代器 iterators
      • 10.4 SGI STL - 序列容器
      • 10.5 SGI STL - 关联容器
      • 10.6 SGI STL - string
    • 11. C++ 模板
      • 11.1 template 模板
      • 11.2 C++ 类型萃取技术

二、C++


1. C,java,C++区别

   Q1. C++与Java的区别?

    Q2. C++与C的区别?

    Q3. C++调用C接口 ?
   虽然C语言是C++的一部分,但是C++是无法直接调用C语言接口,这是因为C++支持函数重载,因此需要函数名称和函数参数来确定唯一的函数签名,而C语言不支持函数重载。所以C++与C语言对于同一个函数生成的函数签名不同,因此C++不能直接调用C接口。要调用C接口就需要使用 extern “C”


2. C++ 对象模型(C++ class底层原理)

   相比于C语言的精炼和简洁,C++主要体现了其良好的扩展性。当一个C语言被封装成一个C++程序时,其内存空间布局并没有增加成本。其在布局和存取时间上的额外负担是由virtual引起的,包括virtual functionvirtual base class.
   C++ 对象模型是C++面向对象的底层实现原理,是支持C++面向对象的基础。在C语言中,语言并没有支持“数据”与“函数”之间的关联性,而在C++中,通过ADT,在类中定义数据和函数,实现了数据与函数的绑定。

2.1 基本对象模型与C++对象模型

  在C++对象模型之前,有两种基本的对象模型:简单对象模型,表格驱动对象模型

C++学习之路二:C++相关推荐

  1. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

  2. Hive学习之路(二):Hive表操作详讲

    操作内容简介 一.操作前的准备 二.Hive表操作详讲 1. 创建数据库 2. 查看所有数据库/表 3. 在Hive上直接操作HDFS 4. 在Hive上直接执行终端命令 5. 创建数据表/查看表的信 ...

  3. python 剑指offer 学习之路(二)

    剑指offer 学习之路 合并两个排序的链表 树的子结构 顺时针打印矩阵 包含min函数的栈 从上往下打印二叉树 二叉搜索树的后序遍历序列 二叉树中和为某一值的路径 复杂链表的复制 数组中出现次数超过 ...

  4. zigbee学习之路(二)点亮LED

    一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...

  5. Spring Boot 学习之路二 配置文件 application.yml

    一.创建配置文件 如图所示,我们在resources文件夹中新建配置文件application.yml 结构图 二.一些基本配置 server: port: 8090 //配置端口session-ti ...

  6. 3D点云之PCL学习之路(二)

    VTK的基本知识(1) PCL使用的第三方库有 boost.eigen.FLANN.OpenNI2.Qhull.VTK. PCL的显示部分就是基于VTK来实现的.简单介绍一下这个库.主要参考依据是:& ...

  7. HBase学习之路(二):Java客户端的CRUD操作详讲

    内容简介 一.概述 二.操作前的准备 三.put操作 1.单行put方法 2.使用Put列表 四.get操作 1.单行get方法 2.使用Get列表 五.delete操作 1.单行delete方法 2 ...

  8. python学习之路二

    数据类型: int   整型 数字进制转化函数: bin(10) "0b1010"  将十进制的10 转换成二进制 oct(10) "0o12"将十进制的10 ...

  9. Object-c学习之路二(oc内存管理黄金法则1)

    今天看了看oc的内存管理,自己管理内存不能随便的release和retain 法则会出现野指针等错误.下面以人和读书的例子做练习. 1.主函数 // // main.m // MemoryManage ...

最新文章

  1. c++ 中const的使用
  2. 机器学习书籍资料(自己正在读的)---self-reading ML booklist ( To be continued )
  3. 解读MySQL 8.0新特性:Skip Scan Range
  4. 实验四 栈和队列的基本操作
  5. layui表头样式_layui中table表头样式修改方法
  6. 使用IPFS集群搭建创建私有IPFS网络
  7. 数据结构之查找算法:分块查找
  8. LeetCode-438. 找到字符串中所有字母异位词
  9. 实现“0”的突破:给一直没有对主机硬件进行过任何“保洁、养护”的网友“支两招”...
  10. 什么是Asp.net Core?和 .net core有什么区别?(转)
  11. PostgreSQL安装及关联ArcMap,创建地理空间数据库
  12. vue使用阿里巴巴矢量图标
  13. 尚硅谷周阳老师 - Docker课程学习
  14. 报告下集 |《认文识字·中文字信息精准化》报告
  15. Spread 16.0 for WinForms Crack
  16. python微服务开发pdf_《微服务设计》中文完整版PDF电子书下载
  17. SRAM、PSRAM、SPI FLASH初步认识
  18. 欧几里得定理与扩展欧几里得定理
  19. 如何利用RTK通过CORS进行测量?
  20. 一年303个漏洞,Chrome被评为“最脆弱”浏览器,Opera 最安全!网友:Opera 还有人用?...

热门文章

  1. 计算机丢失bdertl60,bdertl60.bpl
  2. 用来制作可启动U盘的Windows开源工具--Ventoy
  3. php体育网站模板,运动健身企业的网站模板
  4. 企业研发流程演进之路
  5. 《Adobe Photoshop CS5中文版经典教程(全彩版)》—第2课2.7节使用海绵工具调整饱和度...
  6. Python:urllib解析查询参数parse_qsl、parse_qs
  7. AS下解决Gradle dependencies compile jar包冲突、重复问题
  8. Android Studio 处理Api28 网络图片加载不出来问题
  9. 家里摄像头密码忘记找回
  10. DDL,DML,DCL