摘要:
c++中的explicit关键字用来并且只能用来修饰类的构造函数,表明该构造函数是显式的,“显式”的意思是说创建类对象时必须写出构造函数的名称,相对的,“隐式”指的是创建类对象时不必写出构造函数名,只需根据构造函数形参类型指定实参,由编译器进行形参类型到类类型的隐式转换。《C++ Primer》指出:可以用单个实参来调用的构造函数,它自身定义了从形参类型到类类型的一个隐式转换。也就是说,如果c++类的构造函数可以只传一个实参来调用(构造函数的形式参数实际上可能不止一个,但除了传入实参的那个参数外,其他的参数都有默认值),那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转 阅读全文
摘要:
文件数据基础知识:1) 在IA-32架构的计算机中,数据存储的最小单位是“位”(一位能表示两种状态:0和1);按CPU一次处理的位数,可将CPU分为8位、16位、32位和64位。2) CPU被设计为擅长处理2的N次幂的位数,所以用CPU处理非2的N次幂的位数会破坏流水线,导致指令的执行效率低下,因此数据一般是不会采用非2的N次幂的位数来存储的。3) 通常情况下为了获得高的处理效率,CPU处理数据的最小单位是8个位。因为如果要处理少于一字节(8位)的数据,CPU通常要使用移位指令和逻辑指令来提取位数据,这样将导致处理效率非常低。况且内存是以字节为单位存放数据的。4) 把不同的字节数据组织在一起, 阅读全文