首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
cpp
订阅
cxxer
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
C++虚析构函数
C++虚析构函数主要关注两个问题,什么时候要用虚析构以及它是怎么工作的。下面回答这两个问题。 答案:通过基类的指针来删除派生类的对象时,基类的析构函数应该是虚的。这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。 原因:用对象指针来调用一个函数,有…
C++中的&和&&
C++的&符号有三种用途,而&&有两种。本文对这两个运算符的用途做简要总结。 第一种用途:位运算中的“与”(AND)。位运算十分高效,数据分片时常会用到,例如网络数据报头、IP地址段、UTF-8编码等。 第二种用途:取地址。这个功能在C中比较常见,比如取函数地址、变量地址。用法…
什么是智能指针?为什么要用智能指针?
看到这些问题,心里就发毛。什么是智能指针啊?为什么要用智能指针啊?循环引用又是什么鬼?实现?我❌... 常见的智能指针有几种,一种是共享指针shared_ptr,一种是独享指针unique_ptr,一种是弱指针weak_ptr,一种是很久没用过的auto_ptr(被unique…
内联(inline)函数与虚函数(virtual)的讨论
内联函数是个静态行为,而虚函数是个动态行为,他们之间是有矛盾的。 我们之所以能看到一些象内联函数的虚函数,是因为某个函数是否是内联函数不是由我们说的算,而是由编译器决定的。我们只能向编译器建议,某个函数可以是内联函数(inline关键字),但是编译器有自己的判断法则。所以可能出…
C++在指定内存构造对象
为了提高程序的性能,一个做法是一次性分配足够多的内存,从而避免多次申请以及数据拷贝。对于c++,有一个问题:如何在已分配好的内存上构造对象? 前文“vector的性能利器:reserve”提到使用reserve预先分配内存,再push_back或emplace_back,存储过…
vector的性能利器:reserve
vector是C++编程时的常用容器,其帮助用户自动管理存储空间,简单易用,且能避免资源泄露的问题。需要动态分配存储空间的场景,完全可替代原生数组。 vector被人诟病的地方在于性能。C++ 11引入array容器,有原生数组的性能,编译期能确定大小的情况可取代vector。…
C++虚函数的工作原理
讨论静态绑定与动态绑定,首先需要理解的是绑定,何为绑定?函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定。 理解了绑定后再理解静态与动态。 静态绑定:指在程序编译过程中,把函数调用与响应调用所需的代码结合的过程,称为静态绑定。发生在编译期。 动态绑定:指在…
C++ 类内存分布
这里不妨说下 C++ 内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。
C++类中的特殊成员函数
C++类中有几个特殊的非静态成员函数,当用户未定义这些函数时,编译器将给出默认实现。C++11前有四个特殊函数,C++11引入移动语义特性,增加了两个参数为右值的特殊函数。这六个函数分别是: 默认构造函数指不需要参数就能初始化的构造函数。包含无参和所有参数有默认值两种类型的构造…
C++函数修饰符总结
C++博大精深,而且不断拥抱新的变化。本文简要总结一下C++中函数的修饰符,其中部分在实际中极少用到。 按修饰符的位置分为函数名前与函数名后两种,以下分别做介绍。 返回值类型是C++中定义函数的必备部分,这些修饰符包括void,(unsigned) int,bool等内置基本数…