C++的一些细节

来源:互联网 发布:mac 终端命令大全 编辑:程序博客网 时间:2024/05/18 00:01

1.C++中,将负数赋值给unsigned是完全合法的。例如,将-1赋值给unsigned char,那么结果是255.


2.C++中,double的精度和计算速度都要超过float,long double则需要承担额外的运行代价。


3.std:ou/

   t<<"Hi"<<st/

   d:endl

等价于std:out<<"Hi"<<std:endl


4.C++中,定义和声明一般都是同时进行的,只有一种情况,extern,extern声明不是定义,也不分配内存,它只是说明变量声明在什么地方,程序中变量可以声明多次,却只能定义一次


5.在函数中定义一个与全局变量重名的变量会屏蔽掉原来的全局变量

 

6.非const变量默认为extern,要是const变量能够在其他文件中访问,需要显示的指定为extern

 

 

 

7.当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象,不可能将引用绑定到另一个对象

 

 

 

8.struct和class在C++里都可以原来定义类,不同的是,默认情况下,struct的成员是public,class的成员是private

 

 

9.getline(cin,string line)不忽略行开头的换行符,只要getline遇到换行符,getline就将停止读入,getline将istream作为返回值。

 

 

10.string.size()的返回值不上整型,而是配套类型string::size_type,vector等也与之类似。

 

11.0值指针的删除是合法的,尽管没有任何的意义

int *ip=0;delete ip;


原创粉丝点击