Item 2:尽量使用C++风格的类型转换
1. C语言的类型转换缺点
1.1 过于粗鲁,允许在任何类型之间进行转换。
1.2 在程序语句中难以识别。
1.3 类型转换失败不可获知。
2. C++类型转换符的介绍
2.1. static_cast 在功能上基本上与 C 风格的类型转换一样强大,含义也一样。但是,static_cast 不能从表达式中去除 const 属性。
2.2. const_cast 用于类型转换掉表达式的 const 或 volatileness 属性。
2.3. dynamic_cast,它被用于安全地沿着类的继承关系向下进行类型转换。在帮助你浏览继承层次上是有限制的。它不能被用于缺乏虚函数的类型上。
2.4. reinterpret_cast,其的转换 结果几乎都是执行期定义(implementation-defined)。因此, 使用reinterpret_casts 的代码很难移植。 reinterpret_casts 的最普通的用途就是在函数指针类型之间进行转换。
1.指针可以为空值,引用不可以引用不可以为空值的好处是可以省略判断,提高代码效率。
void Test(const int& count) { cout << count << endl; } void Test(const int* count) { if(NULL != count) { cout << count << endl; } }2 指针可以被改变,引用初始化后不可以再改变
3 重载某些操作符时可能需要返回引用
也就是说,当有可能会为空值的时候要使用指针,当有变量可能改变的时候要使用指针。
1.1:JDK下载
官网(http://www.oracle.com/technetwork/java/javase/downloads/index.html)下载JDK的安装程序(本次版本为:jdk-7u5-windows-i586.exe)。
1.2:JDK安装 安装路径为C:\ProgramFiles\Java\jdk1.7.0_051.3:环境变量设置
系统环境变量设置如下:
JAVA_HOME C:\ProgramFiles\Java\jdk1.7.0_05
Path C:\ProgramFiles\Java\jdk1.7.0_05\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ProgramFiles\Java\jdk1.7.0_05\jre\bin;
CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib;
2:Android SDK 配置
为了解决以前老版本中开发环境配置繁杂的缺点,谷歌提供了免配置的开发包,官网(http://developer.android.com/sdk/index.html)下载adt-bundle-windows-x86.zip,解压缩之后,可以看到eclipse, sdk, SDK Manager.exe 都包含在这个包中了,直接运行eclipse.exe即可开发我们的android应用程序了。