高质量C/C++编译指南 学习笔记
来源:互联网 发布:ubuntu caffe cuda8 编辑:程序博客网 时间:2024/06/05 03:13
1、添加
#ifndef _XXX_H_ #define _XXX_H_ ..... #endif
至头文件,防止头文件被重复引用而引起的重定义问题
2、#include<XXX.h>
将从标准库目录开始搜索
#include"XXX.h"
是从用户工作目录开始搜索
3、浮点数与0值比较:
无论float还是double变量,都有精度限制,不能直接用‘=’或者‘!=’来与数字比较,应该设法转化为“>=”或者“<=”形式。
eg:
if((x>=-EPSION) && (x<=EPSION)) //EPSION是精度,一般取0.000001
4、const与#define比较
C++语言可以用const来定义常量,也可以用#define来定义常量,但是前者有更多的优点
i、const有数据类型,编译器可以对其进行类型安全检查;#define没有数据类型,只是在编译时进行符号替换,因此也没有数据类型安全检查
ii、有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试
5、如果参数是指针,且仅作输入时使用,则应该类型前加上const,防止该指针在函数体内被随意修改
6、如果函数输入参数以值传递方式传递对象,则宜改为“const &”方式来传递,这样可以省去临时对象的构造与析构过程,从而提高效率
7、防止内存耗尽
i、判断指针为空,则马上return来终止函数:
void fun(void){ A *a = new A(); if(a==nullptr)return; }
ii、判断指针为空,则马上调用exit(1)来终止整个程序运行
void fun(void){ A *a = new A(); if(a==nullptr)exit(1);}
8、重载、覆盖与隐藏
i、成员函数被重载的特征:
- 相同的范围(在同一个类中)
- 函数名字相同
- 参数类型或(和)者个数不同
- virtual关键字可有可无
ii、成员函数被覆盖的特征
- 不同的范围(分别位于派生类与基类)
- 函数的名字形同
- 参数形同
- 基类必须有virtual关键字
iii、隐藏规则
- 如果派生类的函数与积累的函数同名,但参数不同,此时,无论有无virtual关键字,基类的函数将被隐藏
- 如果派生类的函数与基类函数同名,且参数也相同,但是基类没有virtual关键字,基类的函数将被隐藏
0 0
- 高质量C/C++编译指南 学习笔记
- 高质量C++/C编程指南学习笔记(上)
- 高质量C++/C编程指南学习笔记(上)
- 《高质量C++/C编程指南(林锐)》学习笔记
- 《高质量C++&C编程指南》笔记
- 《高质量C++C编程指南》笔记
- 高质量C++C编程指南笔记
- 高质量C编程指南 学习笔记(一)
- 《高质量C/C++编程指南》学习笔记
- 高质量C&C++编程指南---笔记
- 高质量C、C++编程指南 笔记
- 《高质量C/C++编程指南》笔记
- 高质量C/C++编程指南笔记
- 【C】【笔记】高质量C++编程指南
- 《高质量C++/C编程指南》代码规范笔记
- 《高质量 C++/C 编程指南 》阅读笔记(二)
- 《高质量 C++/C 编程指南 》阅读笔记(三)
- 《高质量 C++/C 编程指南 》阅读笔记(四)
- 关于equals,==,hashCode
- HTML5基础学习笔记(十六)
- java反射理解
- Python从入门到放弃(四):函数细讲
- ab 模拟测试秒杀
- 高质量C/C++编译指南 学习笔记
- windows和linux的redis的安装
- 南阳理工学院--语言入门--公倍数与公约数
- JavaScript实现拖拽预览,AJAX小文件上传
- Volley 源码解析
- 【9011】打击犯罪
- 线性dp A(poj1163)
- 前端开发中的字符编码详解
- win10系统中启动Edge浏览器带命令行参数