c++学习笔记(一)
来源:互联网 发布:noteexpress mac版 编辑:程序博客网 时间:2024/06/10 06:34
1.using 编译指令:尽量放在函数里面,也可以把经常用的using指令集中放在一个头文件中,还可以使用std::形式。
2.尽量使用const声明定义常量,一般必须进行初始化,不要使用#define
3.auto,自动类型推断,一般适用于复杂类型,并非为简单类型情况而设计。
4.在c++ struct 的用法与基本class 类型的用法差不多,只不过默认的数据成员类型不同。(位字段、共用体、枚举)
5.尽量使用new/delete以及new T[n]/delete[],不要使用malloc/free;
6.根据内存分配的方法,c++有3中管理内存的方法:自动存储(局部变量,栈来管理);静态存储(全局变量以及static变量);动态存储(new/delete 自由存储空间,即堆heap)
7.vector类(变长数组,堆中分配)的功能比数组强大,但付出的代价是效率稍低;在c+11新增了模板类array(定长数组),与数组一样,array对象的长度是固定的,也是用栈分配。
8.c+11基于范围的for循环:for(type/auto x:container){} for(type &x: container){}
9.c++ 将数组名解释为其第一个元素的地址
10.C-风格字符串由一系列字符组成,以空值'\0'结束。
C-风格字符串与常规数组的区别:字符串有内置的结束字符,这意味着不必将字符串长度作为参数传递给函数。但不以空值字符串结尾的char数组只是数组,而不是字符串。
11.使用typedef 可以减少输入量,让你编写代码不容易犯错,并让程序更容易理解。(尤其在函数指针上)
12.内联函数inline与宏很相似
13.引用变量 T& a=b表示a为b的别名,&不是地址运算符,而是类型标识符的一部分。引用变量主要用在函数的参数,表示使用的是原始的数据,而非副本。声明引用变量必须进行初始化。
14.左值参数是可被引用的数据对象。
15.应可能使用const
16.创建临时变量:实参类型正确,但不是左值;实参类型不正确,但是可以转化为正确的类型。
16.返回引用,const也可以用于返回引用。
17.显示具体化的原型和定义应以template<>打头,并通过名称来指出类型。具体化优于常规模板,而非模板函数优于具体化和常规模板。
18.注意显示实例化与隐式实例化。
19.decltype(expression) var ;在C++中,decltype作为操作符,用于查询表达式的数据类型
20.隐式转换函数形式:operator typename()
转换函数必须为类方法;转换函数不能指定返回类型;转换函数不能有参数
在构造函数声明中使用explicit可防止隐式转换,而只允许显示转换
21.模型别名:使用using alias=type,注意模板与非模板的区别,代替typedef
22.面向对象关注的是编程的数据方面,而泛型编程关注的是算法;它们之间的共同点是抽象和创建可重用代码,但它们的理念绝然不同。stl是一个容器类模板、迭代器模板、函数对象模板、算法函数模板的集合等。
23.若要使用指针,尽量使用智能指针。
0 0
- c 学习笔记 (一)
- C学习笔记(一)
- C ++ 学习笔记(一)
- C学习笔记(一)
- C++&C学习笔记(一)(基础)
- c学习笔记(一)
- 【C++】学习笔记一
- Pro *C/C++学习笔记(一)
- C语言学习笔记(一)
- C语言学习笔记(一)
- C++primer学习笔记(一)
- C++Primer学习笔记(一)
- Object-C学习笔记(一)
- C语言学习笔记(一)
- C和指针 学习笔记(一)
- C语言学习笔记(一)
- c++Templates学习笔记(一)
- Pro *C/C++学习笔记(一)
- C#编程一些基本技巧
- 图像合成(一)--三角剖分
- 【计蒜客系列】挑战难题13:整数转换成罗马数字
- Unix Mac OS下JAVA的安装路径
- Android自定义实现圆形播放进度条
- c++学习笔记(一)
- 2015.7.15 codeforces 2组B题
- 对XML文件的解析,DOM、SAX、JDOM、JAXB还有dom4
- IOS开发常用的三方库以及Xcode常用插件
- laravel5.0 服务器上被坑的 bootstrap
- 【工作日志】【asp】asp学习
- linux 下LNMP环境搭建
- cf558B查找最短的最大区间段,利用二维数组巧妙简化运算
- MarkDown基本语法