C++速成-1

1.生成一个C++程序的步骤? c++

  编译预处理;编译;连接 安全

2.名字空间的做用? 函数

  名字空间是用来处理不一样代码段名称冲突问题的。 spa

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.枚举类型?

相关文章
相关标签/搜索