C/C++程序基础 (二)常用知识点
2018-06-17 20:57:45来源:未知 阅读 ()
- 使用宏实现max
- 注意括号在宏内的使用
-
#define MAX(x, y) ( ( (x) > (y) ) ? (x) : (y) )
宏参数连接
-
a##e##b
- 转化为字符串 #a
-
- const
- const int* a; 左侧,修饰变量
- int* const a;右侧,修饰指针
- const 与宏的区别
- #define 预处理器将宏变为代码,属于代码段。
- const 有类型,在编译阶段会有类型检查,和其他变量一样可以被调用、传递。属于数据段。
- const在C++的作用(按照应用情景分别介绍)
- 定义变量,表示变量为常量
- 修饰形式参数,表示参数不可以被修改(节省按值传递的构造、复制、析构开销)
- 修饰返回值,表示返回值为常量
- 修饰成员函数,表示成员函数内不会修改对象的成员变量。(注意:不可以调用非const 函数)
- static关键字的用法
- 静态局部变量:改变存储,从自动存储区(auto)移到静态存储区(static, extern)。从而改变生命周期。
- 静态全部变量:改变作用域,单文件,初始化一次(0)。
- 静态函数:改变作用域,单文件。避免多文件冲突。
- 静态成员变量:属于类,类加载时初始化。类名访问。
- 静态成员函数:属于类,仅可调用静态成员变量。类名访问。
- sizeof 操作符:计算内存大小,用于动态分配等
- 字符串:strlen() + 1 = sizeof 结束字符'\0'
- 指针和数组:数组是完整内存,除非处理形式参数。
- 对象:对齐规则(每个成员的偏移量是自身大小的整数倍;总大小是最宽成员大小的整数倍)
- 含虚函数:指向虚函数表的指针。
- 普通继承:sizeof(父类)+ sizeof(子类)
- 虚拟继承:指针指向虚基类表,表内存储基类的偏移。故保存父类的数据,但仅仅一份。
- union对齐:
- 最大的数据成员
- 符合每个成员的对齐规则
- #pragma pack(n) 设置对齐单元
- inline函数
- 与宏的区别:编译(预处理)时展开调用;本质是函数,存在类型检查等编译功能,可以调试;不存在宏的二义性问题;可以处理对象成员。
- 适用情形:函数代码少(避免代码膨胀);不包含递归,循环等(优势小);析构和构造函数不建议,建议存取函数。
- 如何定义:类声明内定义函数默认为内联函数;头文件定义的内联函数(定义时必有inline关键字)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash