C++简介
C++是Bjarne Stroustrup与20世纪80年代开发的。
C语言的升级版*,为C语言增加了面向对象的功能。
- 本帖只代表本人的看法
C++的注释
- 可以使用 //
- 多行可以使用 /**/
C++的基本构成
- 注释
- 预处理编译指令 #include
- 函数头 int main()
- 编译指令 using namespace std
- 函数体 {}
- 使用C++ 的cout工具显示消息的语句
- 结束main函数的 return语句
C++必须声明变量
C++基础
变量
- C++提倡使用有含义的变量名 - 名称中只能使用字母,数字,下划线
- 第一个字符不能是数字
- 区分大小写
- 不能使用C++关键字
- 两个下划线和大写字符保留给编译器及使用的资源,一个下划线用作全局标识符
 
- 整型 - 包含10种类型(char, short, int, long, long long 及其有符号的相应的5种), 根据需求使用。 - 数字后带有后缀一般都有其含义, L或l 代表是long,U或u代表为有符号类型 - 数字前带有前缀的,0数字 代表是使用8进制, 0x数字的则代表16进制。 
- 浮点数 
- 运算符 - + - * // %五种运算符
- 常量 const - 使用方法 - const type name = value- name尽量使用头字母大写。或是有规律的写法 
- 数组 - 数组类型 + 数组名 + 数组中的元素个数构成数组 - int name[10] - 数组的初始化值使用大括号,并使用逗号来分隔各个元素 
- 字符串 - C风格的字符串具有一种特殊的性质,以空字符结尾,空字符被写作 - \0;- char
- string- 头部添加 #include <string>
- 初始化 string name = {“xxxx”}; string name;
- 字符串合并 str1 + str2 str1 += str2
- 提取字符串元素 str1[1]
- strlen() 可以计算字符串的长度
- getline(cin, str) 读取一行与char不同
- cin.getline()和getline(cin, str)是两个方法
 
- 头部添加 
 
- 结构 - 声明 struct struct_name { 属性;属性;属性; } 
- 创建结构变量 struct_name name; 
- 赋值 name = {value,value,value}; - 例 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 struct inflatable
 {
 char name[20];
 float volume;
 double price;
 };
 int main()
 {
 using namespace std;
 inflatable guest =
 {
 "Glorious Gloria",
 1.89,
 29.99
 };
 inflatable pal =
 {
 "Audacious Arthur",
 3.12,
 32.99
 };
 cout << "Expand your guest list with " << guest.name << " and " << pal.name << "!\n";
 cout << "Your can have both for " << guest.price + pal.price << "!" << endl;
 return 0;
 }
- C++ 不推荐使用外部变量 (在函数外声明的变量),但是推荐外部结构声明 
- 结构可以作为函数的参数,也可以作为结果被返回 
 
- 共用体 - 共用体是一种数据格式,它能够存储不同的数据类型。但只能同时存储其中的一种类型。
- union union_name{属性;属性;属性;}
 
- 枚举 - enum工具提供了另一种创建符号常量的方式。
- enum enum_name{value,value,value,…}
 
- 指针和自由存储空间 - 指针,一种变量,其存储的是值的地址。使用 - &就能查看变量的地址
- *运算符代表指针 例如 int * p_updates 代表 p_updates 为地址,调用时使用*p_updates 可以得到改地址处的值
- 实例 - 1 
 2
 3
 4
 5
 6
 7
 8
 9- int updates = 6; 
 int * p_updates;
 p_updates = &updates;
 cout << "Values: updates = " << updates;
 cout << ", *p_updates = " << *p_updates << endl;
 cout << "Address: &updates = " << &updates;
 cout << ", p_updates = " << p_updates << endl;
 *p_updates = *p_updates + 1;
 cout << "Now updates = " << updates << endl;
- 声明和初始化指针 - 类型 * p_name
- 一定要在对指针应用解除引用运算符(*)之前,将指针初始化为一个确定的,适当的地址。
- 使用new来分配内存 int * pn = new int;
- 使用delete释放内存  一定要配对地使用new 和 delete,否则会出现内存泄漏 delete p_name
- 使用new创建动态数组 int * psome = new int [10];释放内存的时候delete [] psome,使用new时,不带方括号时,释放时也不带方括号,带方括号的,释放时必须带方括号- 不要使用delete来释放不是new分配的内存
- 不要使用delete释放同一个内存块两次
- 如果使用 new []为数组分配内存,则应使用delete []来释放
- 如果使用 new为一个实体分配内存,则应使用delete来释放
- 对空指针应用 delete 是安全的
- 读取元素和使用数组一样使用[0]下标即可
 
 
 
循环
std::ios_base ios_base类封装了C++标准中的流输入输出中不依赖于读写的数据的类型的基本信息,如格式化信息、异常状态、事件回调函数等。
cout.setf(ios_base::boolalpha); 可以将布尔值,由数字转为true, false。
| 1 | using namespace std; | 
- For
| 1 | for (expression; expression; expression) |