标签:最大 头文件 back 文件访问 第一个 私有 标识 sign span
1.< >表示包含来自标准库的头文件,对于不属于标准库的头文件则用双引号” ”;
2.复合类型的声明:int* p1,p2;//p1是指向int的指针,p2是int;
3.decltype类型指示符:如果decltype使用的表达式是一个变量,则decltype返回该变量的类型(包括顶层const和引用在内);decltype(s.size()) p=0;//p的类型和s.size的返回类型一样即string::size_type( 从逻辑上来讲,size() 成员函数似乎应该返回整形数值,或是无符号整数。但事实上,size 操作返回的是 string::size_type 类型的值。
string 类类型和许多其他库类型都定义了一些配套类型(companion type)。通过这些配套类型,库类型的使用就能与机器无关(machine-independent)。size_type 就是这些配套类型中的一种。它定义为与 unsigned 型(unsigned int 或 unsigned long)具有相同的含义,而且可以保证足够大能够存储任意 string 对象的长度。为了使用由 string 类型定义的 size_type 类型是由 string 类定义。任何存储string的size操作结果的变量必须为string::size_type 类型。特别重要的是,不要把size的返回值赋给一个 int 变量。
虽然我们不知道 string::size_type 的确切类型,但可以知道它是 unsigned 型。对于任意一种给定的数据类型,它的 unsigned 型所能表示的最大正数值比对应的 signed 型要大一倍。这个事实表明 size_type 存储的 string 长度是 int 所能存储的两倍。
使用 int 变量的另一个问题是,有些机器上 int 变量的表示范围太小,甚至无法存储实际并不长的 string 对象。如在有 16 位 int 型的机器上,int 类型变量最大只能表示 32767 个字符的 string 对象。而能容纳一个文件内容的 string 对象轻易就会超过这个数字。因此,为了避免溢出,保存一个 stirng 对象 size 的最安全的方法就是使用标准库类型 string::size_type。)
4.const:定义变量时给初始值,不能修改,只读形式;默认状态下,const对象仅在文件内有效,//对于const变量不管是声明还是定义都添加extern关键字,这样只需定义一次就可以了://extern const int bufSize=8;//该常量能被其他文件访问。
l auto:编译器通过初始值自动推断变量的类型
n 例如:auto val = val1 + val2;
如果val1+val2是int类型,则val是int类型;
如果val1+val2是double类型,则val是double类型。
5.类和对象:
class类名称
{
public:
公有成员(外部接口)
private:
私有成员
protected:
保护型成员
};
从类外访问成员使用“对象名.成员名”方式访问public成员
*理解“引用”
*重载函数的主要好处:{功能类似的多个函数用同一个名字;
要求:参数的类型不同/参数的个数不同/参数的类型和个数都不同}
*构造函数:”=default”;默认构造函数
*class和struct关键字都可以定义类,区别在于默认访问权限不一样。如果使用struct关键字,则定义在第一个访问说明符之前的成员是public的;相反使用class关键字,则这些成员是private的。//例:
class Word
{
float mass;//private by default
char name[20];//private by default
Public:
void tee(void);
};
*update()成员函数的函数头如下:
void Stock ::update(double price)
这种表示法意味着我们定义的update( )函数是Stock类的成员。这不仅将update( )标识为成员函数,还意味着我们可以将另一个类的成员函数也命名为update()。
*:面向行的输入cin.getline(name,20);//使用getline将姓名读入到一个包含20个元素的name数组中,换行符结束,不包含换行符。
Cin.get();//包含换行符。
将两个类成员函数拼接起来:下面的语句将把输入中的连续两行分别读入到数组name1,name2中,其效果与两次调用cin.getline()相同:
cin.getline(name1,20).getline(name2,20);//cin.getline()返回一个cin对象
*vector<string> v8{10,”hi”};//v8有10个值为hi的元素
(因为要想列表初始化vector对象,花括号里的值必须与元素类型相同,显然不能用int初始化string对象,所以v7和v8提供的值不能作为元素的初始值。确认无法执行列表初始化后,编译器会尝试用默认值初始化vector对象)
*要想理解数组声明的含义,最好的办法是从数组的名字开始从右向左,有括号先读括号里的。
*size_t类型:是一种机器无关的无符号类型,它被设计的足够大以便能表示内存中任意对象的大小。在cstddef头文件中定义了size_t类型,这个文件是c标准库stddef.h头文件的c++版本。在使用数组下标的时候,通常将其定义为size_t类型。
标签:最大 头文件 back 文件访问 第一个 私有 标识 sign span
原文地址:http://www.cnblogs.com/ctq1/p/7805323.html