C++学习笔记

1、在C++中,类型转换static_cast、dynamic_cast、reinterpret_cast和const_cast
(1)double d=2.5;
int i;
i=(int)d;

(2)在简单的情况下,上面这种类型转换可以很好地工作,但在C++中往往还是不够的,为此ANSI-C++新标准定义的四个转换符,即static_cast、dynamic_cast、reinterpret_cast和const_cast。
http://patmusing.blog.163.com/blog/static/13583496020103243210628/

2、inline与define宏定义
在实践中,经常会看到宏定义,个人理解:
(1)①inline主要是用于函数的宏定义,用inline修饰的函数称为内联函数,
②define是用于常量的宏定义,只是简单的用一个全局变量代表常量
③如果用这两个关键字分别定义同一个功能的函数时,define定义函数的参数类型可以不必确定数据类型,而inline定义函数的参数类型是确定的。
http://baike.baidu.com/link?url=q7K6zyldOyeQH_bImwtCS5W4biqTbsXT9rzSolHUeLR9in7cZJ8c9nMqQhK-CNwp9H1OfeHhmLKdf_U_P3zw6_

(2)内联函数和普通函数区别:
内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。

①当你定义一个内联函数时,在函数定义前加上 inline 关键字,并且将定义放入头文件:

inline void f(int i, char c)
{

 // ... 

}
②内联函数体不能包含循环语句、switch语句。
③内联函数要先定义、后调用,不能先声明内联函数原型,在定义、调用。
④注意区分内联函数和内联成员函数:
在类内,可以先用inline声明某一个成员函数为内联函数,然后再类外进行定义,但是普通内联函数不能这么做(上面已说明)。

3、Const
http://zhidao.baidu.com/link?url=w_yNAwAakqWwq06rnxRqiRKq5JOEI0A5SrgMujd3koxBfQvuXw9y8ybhXiwzVh_9QUHSu4kQy4qGS-Y6tFdPFq
http://www.jb51.net/article/41807.htm
http://blog.sina.com.cn/s/blog_4dd77fd10100lug5.html

4、namespace
C++中采用的是单一的局部变量命名空间,在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。所以就引入了一种机制:命名空间,主要思想是将变量定义咋一个不同名字的命名空间里。命名空间就像文件夹,文件夹避免了相同文件名的文件的冲突,同样,命名空间把相同的变量名或者分开。只不过文件夹属于物理层上的分块方法,命名空间是逻辑结构上的分块方法。
具体内容可参考下面的博客:
http://blog.sina.com.cn/s/blog_986c99d601010hiv.html
http://blog.sina.com.cn/s/blog_af68a2c201015pqo.html

关于命名空间重命名和using指令的使用,都是为了简化命名空间中变量或者函数的调用,其中using指令的使用有两种方法,一种是直接在文件头直接声明。另一种是在使用命名空间中的变量或方法时,创建一个语句块,限定using指令的作用域。

5、Include
http://blog.sina.com.cn/s/blog_6e0693f70100so42.html
http://www.360doc.com/content/12/1216/13/8724098_254349739.shtml

6、模板
比较系统的讲解:http://www.cnblogs.com/assemble8086/archive/2011/10/02/2198308.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值