siteservercms做的网站在后台进行修改教程,用手机画房子平面图,江苏建设网官网,欧铂丽全屋定制价格每平米多少钱第二章笔记 #xff08;貌似记得有点多#xff09; 把负值赋给unsigned对象时完全合法的#xff0c;其结果是该负数对该类型的取值个数求模后的值 -1 #xff08;对265求模#xff09; 255float型只能保证6位有效数字#xff0c;而double型至少可以保证10位有效数… 第二章笔记 貌似记得有点多 把负值赋给unsigned对象时完全合法的其结果是该负数对该类型的取值个数求模后的值 -1 对265求模 255 float型只能保证6位有效数字而double型至少可以保证10位有效数字 定义长整形时应该使用大写字母L。小写字母l很容易和数值1混淆 L‘a在字符字面值前加L就能够得到wchar_t扩张字符集比如汉字和日语类型的宽字符字面值 在一行的末尾加一反斜杠\符号可将此行和下一行当作同一行处理。 不允许\后面有注释或空格 本书对象是内存中具有类型的区域。不管是内置类型还是类类型。 标识符不能包含两个连续的下划线__,也不能以下划线开头后面紧跟一个大写字母_A *******初始化 赋值************************** 初始化:创建变量并给它赋初始值 赋值擦除对象的当前值并用新值代替 直接初始化 int ival (1024);更灵活且效率高 复制初始化 int ival 1024; 构造函数定义如何进行初始化的成员函数 string all_nines(10,9);//all_nines 9999999999 当定义没有初始化式的变量时系统有时候会帮我们初始化变量。 系统提供什么样的值取决于变量的类型也取决于变量的定义 内置类型变量在函数体外定义的变量都初始化成0 在函数体里定义的内置类型变量不进行自动初始化。 永远不要依赖未定义行为 建议内置类型的对象都有初始化容易、安全 类有默认构造函数定义类变量时不用显式地初始化变量。 定义用于为变量分配存储空间还可以为变量指定初始值。变量有且仅有一个定义 int a 1; 声明用于向程序表明变量的类型和名字。 int a; 定义也是表明当定义变量时我们表明了它的类型和名字 extern声明变量名而不定义它。声明不是定义不分配存储空间 说明定义在程序的其他地方 extern int i; *******程序中变量可以声明多次但只能定义一次****** 如果声明有初始化那么它可被当作是定义 extern double pi 3.1416 //definition const把一个对象转换成一个常量 const int bufSize 512; 常量在定义后就不能被修改所以定义时必须初始化。 //file_1.cc int counter; //file_2.cc extern int counter; 在全局作用域声明的const变量是定义该对象的文件的局部变量。 此变量只存在于那个文件中不能被其他文件访问。 要使const变量能够在其他的文件中访问必须显式地指定它为extern。 //file_1.cc extern const int buffer 1024; //file_2.cc extern const int buffer; 引用reference就是对象的另一个名字(别名)。主要用作函数的形式参数。 复合类型compound type指用其他类型定义的类型。 不能定义引用类型的引用但可以定义任何其他类型的引用。 int ival 1024; int refVal ival;//ok:refVal refers to ival int refVal2; //error:a reference must be initialized int refVal3 10;//error:initializer must be an object const引用 const int ival 1024; const int refVal ival; int i 42; // legal for const references only const int r 42; const int r2 r i; 同样的初始化对于非const引用是不合法的。 double dval 3.14 const int ri dval; ↓ ↓ int temp dval; // create temporary int from the double const int ri temp; // bind ri to that temporary const引用只读可以绑定到不同但相关的类型的对象或绑定到右值 typedef定义类型的同义词---------定义变量的同义词 typedef double wages; // wages is a synonym for double typedef wages salary; // indirect synonym for double enum指出 值是相关联的 // input is 0 ,output is 1,and append is 2 enum open_modes {input ,output,append}; 不能改变枚举成员的值。枚举成员本身就是一个常量表达式 枚举类型的对象的初始化或赋值只能通过其枚举成员或同一枚举类型的其他对象来进行 enum Points {point2d,point2w,point3d,point3w}; Points pt3d point3d; //ok:point3d is a Points enumerator Points pt2w 3; //error:pt2w initialized with int pt2w polygon; //error:ploygon is not a Points enumerator pt2w pt3d // ok:both are object of Points enum type 类自定义类型定义了该类型的对象包含的数据和该类型的对象可以执行的操作。 每个类都定义了一个接口interface和一个实现implementation 接口先定义由使用该类的代码需要执行的操作组成 实现一般包括该类所需要的数据。还包括定义该类需要的但不提供一般性使用的函数。 定义类时通常先定义该类的接口即该类所提供的操作。通过这些操作可以决定该类完成其功能所需要的数据以及是否需要定义一些函数来支持该类的实现。 成员 操作称为成员函数 数据称为数据成员 访问标号 public private 类不是在类定义里定义数据成员时初始化数据成员而是通过构造函数的特殊成员函数控制初始化。 struct也可以定义类 用class 和 struct 定义类的唯一区别在于默认访问级别 默认情况下struct的成员为public 而class的成为为private 编译头文件需要一定的时间----预编译头文件 头文件用于声明而不是用于定义 double fica_rate // no extern ,so its a definition extern double fica_rate 声明 头文件不应该含有定义这一规则有三个例外 1.定义类 2.值在编译时就已知道的const对象 3.inline函数 const对象默认定义它的文件的局部变量 ****当我们在头文件中定义了const变量后每个包含该头文件的源文件都有了自己的const变量其名称和值都一样。 当该const变量是用常量表达式初始化时可以保证所有的变量都有相同的值。但是在实践中大部分的编译器在编译时都会用相应的常量表达式来替换对这些const变量的使用。所以在实践中不会有任何存储空间用于存储用常量表达式初始化的const变量。 如果const变量不是用常量表达式初始化应在头文件中为它添加extern声明以使其能被多个文件共享。 #include 设施是C预处理器preprocessor的一部分。 预处理器处理程序的源代码在编译器之前运行 #include 指示只接受一个参数头文件名。 预处理器用指定的头文件的内容替代每个#include 头文件保护符header guard避免在已经见到头文件的情况下重新处理该头文件的内容。 保证多次包含同一头文件不会引起该头文件定义的类或对象被多次定义。 #inndef SALESITEM_H #define SALESITEM_H // Definition of Sales_item class and related function goes here #endif 头文件应该含有保护符即使这些头文件不会被其他头文件包含。 可以用定义在头文件里的实体如类来命名预处理器变量来避免预处理器变量重名的问题。 头文件 标准头文件 编译器在预定义的位置集查找该头文件 “头文件” 非系统头文件 查找通常开始于源文件所在的路径 转载于:https://www.cnblogs.com/wincai/p/4218625.html