标签:
1.生成一个C++程序的步骤?
编译预处理;编译;链接
2.名字空间的作用?
名字空间是用来处理不同代码段名称冲突问题的。
3.名字空间的使用方法?
方法一:先把名字空间中的声明(如名字空间变量对象成员的声明或定义、函数原型、自定义数据类型等)放进一个头文件中,就如同头文用于各种声明一样。----名字空间的声明。
再通过#include文件包含存在名字空间声明的那个文件,再在名字空间内部实现各种定义。----名字空间的实现。
方法二:甚至可以把名字空间的声明和定义放在一起,在声明时,就实现名字空间中成员的定义。这类似于类中成员函数的内联。
4.如何使用名字空间中的成员?
方法一:可以使用下面的指令。这表示把名字空间中的所有成员都释放出来,使得名字空间中的成员又具有全局作用域。这将导致的后果是可能再次引入名字冲突的问题。
using namespace 名字空间名称;
方法二:先声明后使用。在预计要使用多少成员,就在源代码文件任意位置通过指令
using 名字空间名称::成员名; 声明要使用到的成员,在下文直接引用成员名即可。
方法三:在使用到的每个成员名称之前统一加上
名字空间名::成员名的方式引用名字空间中的成员。
相比第一种方法,后两种更加安全。
5.易错的数据类型总结?
float f=3.14f; 因为小数默认是double类型,应该显示的说明float变量的f后缀。
double db=3.15; 没问题
long double ldb=3.24L; 大写L不能省,c++标准规定精度至少不低于double
char ch=‘X‘; 单字节字符,未做特别说明只是ASCII码字符是有符号和无符号的交集。
char16_t ch=u‘X‘; 双字节字符,前缀u不能省
char32_t ch=U‘X‘; 四字节字符,前缀U不能省
wchar_t wch=L‘X‘ 宽字节字符,前缀L不能省
bool型:C里面没有的类型,C++新增的数据类型。范围false(0),true(非0)
C++11新增的:
auto 自动类型推导,由编译器自动判断类型。
decltype(exp) 自动类型推导,根据表达式的最终类型确定类型T
6.C++类型转换的方式?
1)自动类型转换:适合于赋值兼容的类型之间的转换。比如整型实型字符型。
2)强制类型转换:
格式一:(T)exp 不管表达式是单项式还是多项式,都将转换离T最近的那项变量或对象。
格式二:(T)(EXP) 整个表达式求之后将转换成T类型
3)????强类型转换:
7.移位?
逻辑移位:是指任何数的二进制模式通过移位后产生的空位,按0填充。比如C/C++的左移
算数移位:是指任何数的二进制位模式移位后产生的空位,按符号位填充。
<<左移运算:不管有符号值(负数)还是无符号值左移总是左移丢,地位补0;
>>右移运算:无符号值右移仍然是逻辑移位,右移丢,高位补0,而负数右移,高位空位补1
总结:1)非负数的左移右移都是逻辑移位,移丢的空位补0,负数的左移也是空位按0填充,而右移高位补1
2)对于有符号值(负数),移位会失去跨平台移植性,对于涉及移位操作的所有函数接口,都应该采用无
符号的参数。unsigned int...
8.枚举类型?
标签:
原文地址:http://my.oschina.net/u/2467198/blog/509031