函数基础
形参和实参:实参是形参的初始值
实参是函数调用时的传入值
形参声明在函数名字后的括号中
每个形参都是一个含有声明符的声明(即使类型一样也必须写出类型)
形参名是可选的,但是我们无法使用未命名的形参
实参应当与形参一一对应(数量...
switch case语句
case标签可以写在一行,表示并列的情况
C++规定不能越过变量的初始化语句直接跳转到该变量作用域内的另一个位置
switch case语句中,如果要变量定义建议通过{}构成块
try语句和异常处理
t...
关键
运算优先级
运算对象转换
重载运算符
左值与右值
左值本质上是对象在内存中的位置
右值则是使用对象的内容,即内存中的数据
取地址符作用于左值,结果为右值
解地址符,下标运算,迭代器解引用,作用于右值,结果为左值
算术运算
除法:C++11...
string
cin>>str的返回值还是std::cin,若读入eof,则返回值为空,因此有
刷题的时候经常遇到,得用一个getchar()把回车先读进来
string对象的比较规则
c++新增遍历元素的for,若...
基本类型的字面值指定字面值的类型
类型的转换:
#define 是预定义变量,是给字面值取别名
指针与引用
引用即别名
指针是指向对象的地址
循环和函数调用时使用 const type &var,可以避免对对象(不一定是con...
https://zhuanlan.zhihu.com/p/34660259
RAII(Resource Acquisition Is Initialization)是由c++之父Bjarne Stroustrup提出的,中文翻译为资源获取即初始化,...
前面章节中我们是通过动态创建子进程或子线程来实现并发服务器的. 这样有如下缺点:
动态创建进程(或线程)是比较耗费时间的,这将导致较慢的客户响应。
动态创建的子进程(或子线程)通常只用来为一个客户服务(除非我们做特殊的处理),这将导致系统上产生大量...
现代Linux的默认线程库为NPTL(Native POSIX Thred Library).
14.1 Linux线程概述
线程是程序中完成一个独立任务的完整执行序列, 即一个可调度的实体. 根据运行环境和调度者的身份, 线程可以分为内核线程和用户...
13.1 fork系统调用123#include <sys/types.h>#include <unistd.h>pid_t fork(void);
该函数每次调用都返回两次, 在父进程中返回的是子进程的PID, 在子进程...
网络程序需要处理的第三类事件是定时事件,比如定期检测一个客户连接的活动状态服务器程序通常管理着众多定时事件,因此有效地组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要逻辑,对于服务器的性能有着至关重要的影响。为此,我们要将每个定时事件...