c++学习
水凝霜艾米
这个作者很懒,什么都没留下…
展开
-
#define和const的区别
const与#define的区别1. 编译器处理方式不同define宏是在预处理阶段展开。const常量是编译运行阶段使用。2. 类型和安全检查不同define宏没有数据类型,不做任何类型检查,define只是简单的字符串替换。const常量有具体的数据类型,在编译阶段会执行类型检查。3. 存储方式不同define宏仅仅是展开,有多少地方使用,就展开多少次,存在于程序的代码段;c...原创 2020-05-03 17:14:36 · 259 阅读 · 0 评论 -
C++四种类型转换总结
C++四种类型转换总结目的:C++风格的强制转换其他的好处是,它们能更清晰的表明它们要干什么,程序员只要扫一眼这样的代码,就能立即知道一个强制转换的目的。细化转换类型提供安全性检测在代码中更加醒目隐式转换:类型转换:如果两种类型可以互相转换,那么他们就是关联的。(c++primer P141)隐式转换:int ival = 3.541 + 3;算术类型之间的隐式转换被设计得尽...原创 2020-04-27 14:52:05 · 305 阅读 · 0 评论 -
Epoll的深入理解
最近学习了select、poll和epoll的相关知识,这里结合一些博客,做了一下总结。I/O多路复用:I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。select、poll 和 epoll 都是 Linux API 提供的 IO 复用方式。...原创 2020-04-11 17:17:06 · 334 阅读 · 1 评论 -
C++构造函数的初始化列表
构造函数初始化列表详细内容可以看《Effective C++》的条款4对非内置类型成员变量,推荐使用类构造函数的初始化列表,但有时必须用带有初始化列表的构造函数:没有默认构造函数的成员类对象const成员或引用类型的成员构造函数初始值列表只能说明用于初始化成员的值,而不限定初始化的具体执行顺序,成员的初始化顺序与它们在类定义中的出现顺序一致。构造函数的执行可以分成两个阶段,初始化阶段...原创 2020-03-30 22:56:37 · 247 阅读 · 0 评论 -
进程与线程的区别
进程与线程的区别1. 进程有自己的独立空间,线程没有2. 进程是资源分配的最小单位,线程是CPU调度的最小单位3. 进程切换上下文开销大,线程开销小4. 一个进程挂掉了不会影响其他进程,而线程挂掉了会影响其他线程5. 进程和线程通信方式不同注:上线文切换:就是从当前执行任务切换到另一个任务执行的过程。但是,为了确保下次能从正确的位置继续执行,在切换之前,会保存上一个任务的状态。...原创 2020-03-29 12:20:31 · 191 阅读 · 0 评论 -
C++的const解析
const的作用:便于进行类型检查。const用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查;保护被修饰的东西,防止意外的修改const修饰函数形式参数 void fun(A const& a); 可以提高效率 引用传递不需要产生临时变量提高了效率。编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量...原创 2020-03-09 23:08:28 · 147 阅读 · 0 评论 -
共享内存
共享内存共享内存的特征共享内存的实现一共有以下几种:pipe: 简单。只能在有血缘关系的进程间通信。fifo: 在无血缘关系的进程间通信。 内部数据只能读一次。(环形队列实现)mmap: 在无血缘关系的进程间通信。 内部数据支持反复读取。信号: 开销小。 携带数据简单。本地 socket: 稳定性最好。 实现复杂。shared mem : 类似于 mmap。 效率最高IPC。这...原创 2020-03-05 09:53:47 · 738 阅读 · 0 评论 -
一级指针和二级指针
一级指针和二级指针一级指针通常用作函数的输入参数,因为一级指针作为函数参数,在调用的时候,实参和形参是不同的内存空间,只是,这个内存空间存放的指针指向的是同一块地址,所以形参在函数执行中可以访问实参指向的内存空间,但是形参的指向的改变并不能影响实参。总结一句话:一级指针做函数参数, 在函数内做形参做重新指向并 不会影响实参的指向。一级指针需要注意的问题:1、不要在函数中,改变形参的指向来...原创 2020-02-29 17:52:59 · 413 阅读 · 0 评论 -
C++实现智能指针
智能指针代码实现:用两个类来实现智能指针的功能,一个是引用计数类,另一个则是指针类。引用计数类:包含两个数据成员: 引用的次数 所指的对象的指针指针类:里面有一个指向引用计数类对象的指针#include<iostream>using namespace std;template<typename T>class Counter{private: /...原创 2020-02-29 17:51:36 · 236 阅读 · 0 评论 -
初识c++中的const
const概述const单词字面意思为常数,不变的。它是c/c++中的一个关键字,是一个限定符,它用来限定一个变量不允许改变,它将一个对象转换成一个常量。const int a = 10;A = 100; //编译错误,const是一个常量,不可修改C中的constc中的const理解为”一个不能改变的普通变量”,也就是认为const应该是一个只读变量,既然是变量那么就会给const...原创 2019-09-03 21:28:29 · 159 阅读 · 0 评论 -
c与c++中的三目运算符
c与c++中的三目运算符c中的三目运算符C语言三目运算表达式返回值为数据值,为右值,不能赋值。int a = 10;int b = 20;printf("ret:%d\n", a > b ? a : b);输出为:20C++语言中三目运算表达式返回值为变量本身(引用),为左值,可以赋值。int a = 10;int b = 20;cout << "ret...原创 2019-09-03 16:49:22 · 1818 阅读 · 0 评论