C++
浮华丶一世
这个作者很懒,什么都没留下…
展开
-
struct(结构体)对齐规则
1.字节对齐的基本概念现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比...原创 2019-11-19 14:33:44 · 2960 阅读 · 0 评论 -
const c和c++的编译区别
今天在牛客网上刷题是刷到一个关于const的题目const int i = 0; int *j = (int *) &i; *j = 1; printf("%d,%d", i, *j)在牛客网中给出的答案是:0,1而在下面的解析给出了更精确的分析:C语言中的const是运行时const,编译时只是定义,在运行才会初始化。C语言中const变量不能用于成为数组长度等作为编译时...原创 2019-11-11 14:20:16 · 331 阅读 · 0 评论 -
C++中const用于函数重载
在我们封装类的过程中,会经常遇到过去类的一个变量的值,我们便会对对这个功能封装一些接口,类似于下面这种:// H_heavy.h#ifndef H_HEAVY_H#define H_HEAVY_Hclass H_heavy{public: H_heavy();public: int& getValue(); // 返回引用为了防止拷贝,提高效率 c...原创 2019-03-12 15:02:08 · 458 阅读 · 0 评论 -
c++深入理解虚函数
为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装多态继承1.普通虚函数2.虚析构函数3.纯虚函数4.抽象类5.接口类6.隐藏 vs 覆盖7.隐藏与覆盖之间的关系8.早绑定和晚绑定9.虚函数表什么是多态相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。静态多态 vs 动态多态1.静态多态也叫做早绑定//rect.h...转载 2018-09-21 16:37:51 · 297 阅读 · 0 评论 -
C++中运算符&和&&、|和||的区别
简介:&&是逻辑与运算符,||是逻辑或运算符,都是逻辑运算符,两边只能是bool类型&与| 既可以进行逻辑运算,又可以进行位运算,两边既可以是bool类型,又可以是数值类型区别:if (A && B) 如果 A 为 false ,整个表达式就为 false,不再计算 B 的值了。if (A & B) 如果 A 为 false ,整个表达式就...转载 2018-09-25 14:37:18 · 29878 阅读 · 0 评论 -
c++前置声明与#include区别
当我们实现一个类的时候,需要用到其他类的一些信息。例如实现A类需要B类的信息。此时有两种情况,一是只需要知道有B类的存在;二是需要知道B类的详细信息或者调用B类的方法。例如sizeof(B)。第一种情况我们使用前置声明,在头文件中使用class B;注意:此时在使用B类时,只能声明B类的指针或者引用进行使用。第二种情况就不得不使用#include,我个人在这种情况在A类的头文件中使用前置声明...原创 2018-09-18 11:14:30 · 963 阅读 · 2 评论 -
vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。 vector类常用的函数如下所示: 1.构造函数vector():创建一个空vector vector(int nSize):创...转载 2018-09-11 11:23:36 · 10055 阅读 · 0 评论 -
C++迭代器的使用和操作总结
目录一.定义和初始化 二.常用操作 三.迭代器const_iterator 四.使迭代器失效的操作 正文 迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。一.定义和初始化 每种容器都定义了自己的迭代器类型...转载 2018-09-11 11:20:05 · 209 阅读 · 0 评论