首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
C++
白龙码
创建于2022-08-20
订阅专栏
深入了解C++的哪些细节原理
等 1 人订阅
共20篇文章
创建于2022-08-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
变量的生命周期以及static的相关用法
一、浅谈变量 变量分为全局变量和局部变量,如何简单地区别它们呢?很简单:==全局变量是定义在大括号之外的,而局部变量是定义在大括号里面的。== 举个简单的栗子: 此时a是全局变量,而b是局部变量。 当
柔性数组
柔型数组 你听说过柔性数组吗?从这个名字我们就能感受到,这个数组有多么的不一般。 柔性数组简介 如: 或者 这种情况用于有些编译器报错的情况下; 柔型数组的特点 例如: 输出结果为4,可见:结构大小不
一文带你彻底弄懂结构体大小和内存对齐
Part I、结构体对齐规则 对齐规则1 要想知道如何计算结构体的大小,必须先了解结构体的对齐规则 假设我们创建了一个结构体: 并由此创建了一个类型为结构体A的变量: 我们知道,一旦我们创建了一个变量
完美转发与底层原理剖析(引用折叠)
万能引用与完美转发 完美转发: 输出结果都是左值,这是因为:当右值引用变量接收了一个右值后,它会开辟一块空间存放这个右值,对于自定义类型还会调用它的构造函数,因此可以说,该右值变量退化为一个左值变量。
模板类型萃取与模板的优缺点分析
模板 一、类型萃取type traits 类型萃取,就是通过模板的特化获取模板参数的类型,比如: 在获取了模板类型的情况下,就可以通过IsPodType.Get()查看它是否是内置类型(POD)。 如
C++静态多态与动态多态的实现原理剖析
多态 一、静态多态的实现原理 静态多态主要借助模板和重载。在编译期间,编译器通过类型来实例化模板或者选择合适的重载。因此,静态多态在编译期间完成。 二、动态多态的实现原理 ①当基类拥有虚函数成员,那么
++i效率高于i++?
前言 你是否有这样的疑惑:为什么很多大佬在写循环的时候喜欢写++i而不是小白习惯上的i++? 这篇博客将带领你们探索其中的关键原因。 简介 我们知道,前置++为先将变量值加一,再使用,如: 得到的结果
柔型数组
柔型数组 你听说过柔性数组吗?从这个名字我们就能感受到,这个数组有多么的不一般。 柔性数组简介 如: 或者 这种情况用于有些编译器报错的情况下; 柔型数组的特点 例如: 输出结果为4,可见:结构大小不
经典指针面试题(下)
接着上一章节,我们直接进入正题: 经典指针面试题详解(上) 笔试题5: 输出结果为:FFFFFFFC,-4 分析: p是指向包含四个整型的数组指针,p=a相当于把数组a的首元素地址赋给p, p[4]\
经典指针面试题(上)
学过C的大都认为,指针是一个让人极其头疼的点;今天,就由我带大家领略几道指针的面试题。 例题一 对于这道题的分析,我想直接用一幅图来解决: 例题二 输出结果为:00100014 、 00100001
变量的生命周期以及static的相关用法
一、浅谈变量 变量分为全局变量和局部变量,如何简单地区别它们呢?很简单:==全局变量是定义在大括号之外的,而局部变量是定义在大括号里面的。== 举个简单的栗子: 此时a是全局变量,而b是局部变量。 当
数据的存储(下)浮点型
前言 整型部分在上一章已经介绍了一遍,感兴趣的同学可以来我的博客进行翻阅,下面我将介绍最为复杂的:浮点型的存储形式。 一、IEE 754标准 IEEE 754规定,任意一个二进制浮点数V可以表示成下面
数据的存储(中)整型
前言 上一章节讲解了进制,为下面的两章做了一个简单的铺垫,下面对整型的存储模式进行详解。 二、整型 1、存储形式 计算机中的有符号整数有三种表示方法:原码、反码、补码(无符号数和正数的原码、反码、补码
数据的存储(上)进制
前言 在计算机中,数据类型分为整型与浮点型两种类型,而对于这两种类型的存储方式又有哪些异同? 我将分三章,对计算机的数据存储进行详细的介绍; 一、进制数 再详细介绍整型与浮点型的存储形式之前,先预铺垫
什么函数不能是虚函数?为什么析构必须是虚函数?
虚函数 虚函数:被virtual修饰的基类成员函数。 纯虚函数: 例如virtual void foo() = 0。纯虚函数所在类称为**"抽象类"**,抽象类不能实例化出对象,它的子类必须重写纯虚函
C++菱形继承问题与虚拟继承原理
菱形继承与虚拟继承 多个类继承了同一个公共基类,而这些派生类又同时被一个类继承,这种称为菱形继承或钻石继承 数据冗余问题 二义性问题 虚拟继承解决问题 此时D从B、C继承来B::a和C::a的a就是唯
模板为什么不能分离编译
gcc/g++ gcc和g++分别是C和C++的编译器。 1、预处理(-E) 预处理阶段进行头文件展开、宏展开、删除注释、条件编译等操作。 -E选项使得编译器在预处理后就停止编译,比如:gcc -E
STL六大组件与底层原理
标准模板库STL 容器(Container) 是一种数据结构, 如list, vector, 和deques,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器。
C++智能指针原理与实现
智能指针 智能指针基于RAII技术(Resource Acquisition Is Initialization,即资源获取即初始化,构造时分配资源,析构时释放资源)。 用指针构造智能指针对象,并在对
emplace_back比push_back更快?快是有条件的!
学习过C++STL的人都知道emplace比push更快,但是真的如此吗?什么条件下会更快呢?本文将带你深入探索!