1,endl,这将在每一行后插入一个换行符,<< 运算符用于向屏幕传多个值
2,typedef 为一个已有的类型取一个新的名字
如:typedef int feet;feet distance;//这样写是可以的
- 3,C++ 中的类型限定符
const 类型的对象在程序执行期间不能被修改改变。
修饰符 volatile 告诉编译器,变量的值可能以程序未明确指定的方式被改变。
由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。
- 4,存储类
auto 只能修饰局部变量
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。不能对它应用一元的 '&' 运算符(因为它没有内存位置)。
当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
在 C++ 中,当 static 用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。
extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的
- 5,位运算符
&:相同为1;
|:有1即是1;
^:不同为1;
~:取反
<<:左移,如,24左移3位,24乘2的3次方;24*2*2*2;
>>:右移,和左移相反;
- 6,杂项运算符
sizeof:运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。
Condition ? X : Y :条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。
.(点)和 ->(箭头):成员运算符用于引用类、结构和共用体的成员。
Cast:强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。
&:指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。
*:指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。
7,goto 语句允许把控制无条件转移到同一函数内的被标记的语句
goto 语句一个很好的作用是退出深嵌套例程。8,参数的默认值
定义:int sum(int a, int b=20),调用sum(a, b);和 sum(a);
调用函数时,如果未传递参数的值,则会使用默认值,如果指定了值,则会忽略默认值,使用传递的值。
9,C++中,setw(int n)用来控制输出间隔。
10,指针
所有指针的值的实际数据类型,都是一个代表内存地址的长的十六进制数。
- 11,引用
int i = 17;
int& r = i;//r 是一个初始化为 i 的整型引用。
引用很容易与指针混淆,它们之间有三个主要的不同:
不存在空引用。引用必须连接到一块合法的内存。
一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
引用必须在创建时被初始化。指针可以在任何时间被初始化。
- 12,struct 关键字来定义结构类型的变量
typedef 更简单的定义结构的方式,您可以为创建的类型取一个"别名";也可以定义非结构类型
结构最后注意跟上“;”
- 13,类结束后面也要加上“;”
私有的成员和受保护的成员不能使用直接成员访问运算符 (.) 来直接访问。
- 14,类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。
析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,
它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
15,默认情况下,在类中定义的所有项目都是私有的
16,如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类
如:// 纯虚函数是通过在声明中使用 "= 0" 来指定的
virtual double getVolume() = 0;
- 17,文件和流
ofstream:用于创建文件并向文件写入信息。
ifstream:用于从文件读取信息
fstream:同时具有 ofstream 和 ifstream 两种功能
void open(const char *filename, ios::openmode mode);
open() 成员函数的第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式。
模式:
ios::app->追加模式。所有写入都追加到文件末尾。
ios::ate->文件打开后定位到文件末尾。
ios::in->打开文件用于读取。
ios::out->打开文件用于写入。
ios::trunc->如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。
如果想要打开一个文件用于读写:
fstream afile;
afile.open("file.dat", ios::out | ios::in );
- 18,关闭文件void close();
当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。
写入文件,使用流插入运算符( << )向文件写入信息
读取文件,使用流提取运算符( >> )从文件读取信息
getline()函数从外部读取一行,ignore() 函数会忽略掉之前读语句留下的多余字符。
istream 和 ostream 都提供了用于重新定位文件位置指针的成员函数
istream 的 seekg()
ostream 的 seekp()
- 19,异常问题
what() 是异常类提供的一个公共方法,它已被所有子异常类重载。这将返回异常产生的原因。
- 20,using 指令也可以用来指定命名空间中的特定项目
如果您只打算使用 std 命名空间中的 cout 部分:using std::cout;
- 21,嵌套的命名空间:
在一个命名空间中定义另一个命名空间
通过使用 :: 运算符来访问嵌套的命名空间中的成员
- 22,预处理器:
#define 预处理指令用于创建符号常量,如:#define PI 3.14159
- 23,多线程
pthread_create();//函数创建线程
pthread_exit(NULL);//等各个线程退出后,进程才结束,否则进程强制结束了,线程可能还没反应过来;
pthread_attr_init(&attr);//初始化并设置线程为可连接的(joinable)
pthread_join();//子程序阻碍调用程序,直到指定的 threadid 线程终止为止
pthread_attr_destroy(&attr);//删除属性,并等待其他线程
- 24,cookie 是一种纯文本的数据记录,带有 5 个可变长度的字段:
Expires : cookie 的过期日期。如果此字段留空,cookie 会在访客退出浏览器时过期。
Domain : 网站的域名。
Path : 设置 cookie 的目录或网页的路径。如果您想从任意的目录或网页检索 cookie,此字段可以留空。
Secure : 如果此字段包含单词 "secure",那么 cookie 只能通过安全服务器进行检索。如果此字段留空,则不存在该限制。
Name=Value : cookie 以键值对的形式被设置和获取。
- 25,STL 教程
容器:容器是用来管理某一类对象的集合。比如 deque、list、vector、map 等。
算法:算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
迭代器:迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。
push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。
size( ) 函数显示向量的大小。
begin( ) 函数返回一个指向向量开头的迭代器。
end( ) 函数返回一个指向向量末尾的迭代器。
- 26,标准库
标准函数库: 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。
面向对象类库: 这个库是类及其相关函数的集合。