2.1第二章导论
2.2C++的特点和程序实例
C++的发展和起源: 从C语言发展演变而来,最初被称为“带类的C” 83年正式取名C++ 98年成ISO批准为国际标准 03年第二版 11年第三版C++11 14年C++14,作为C++11的小扩展,主要提供漏洞修复和小改进C++的特点:
兼容C,支持面向过程 支持面向对象 支持泛型程序设计//2-1.cpp#includeusing namespace std;int main(){ cout<<"Hello!"<
2.3基本数据类型、常量、变量
字符串类型: 有字符串常量,基本类型中没有字符串变量。字符串变量的表示: 采用字符数组存储字符串(C风格的字符串) 标准C++类库中的string类(C++风格的字符串)2.4算数运算与复制运算
2.5实验二:简单的程序设计(上)
2.6数据的输入和输出
I/O流:
在C++中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前要建立,使用后要被删除。 数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。预定义的插入和提取运算符: <<是预定义的插入符,作用在流类对象cout上变可以实现向标准输出设备输出。 >>是预定义的提取符,从键盘提取数据放到相应的变量中。常用I/O流类库的操纵符: endl 插入换行符,并刷新流 ends 插入空字符 setprecision(int) 设置浮点数的小数位数(包括小数点) setw(int) 设置域宽 例:cout << setw(5) << setprecision(3) << 3.1415; (setw和setprecision要引入头文件iomanip)
2.7if语句
2.8switch语句
2.9循环结构
//2-6从键盘输入一个数,将其反转后输出#includeusing namespace std;int main(){ int n, right_digit, newnum = 0; cout << "Enter the number:"; cin >> n; cout << "The number in reverse order is "; do{ right_digit = n % 10; cout << right_digit; n /= 10; }while(n != 0); cout << endl; return 0;}//2-8输入一个整数,求出他的所有因子#include using namespace std;int main(){ int n; cout << "Enter a positive integer:"; cin >> n; cout << "Number " << n << " Factors "; for(int k = 1; k <= n; k++) if(n%k == 0) cout << k << " "; cout << endl; return 0;}//2-10输入一系列整数,统计出正整数的个数i和负整数的个数j,读入0则结束#include using namespace std;int main(){ int i = 0, j = 0, n; cout << "Enter some integers please(enter 0 to quit):" << endl; cin >> n; while(n != 0){ if(n > 0) i += 1; if(n < 0) j += 1; cin >> n; } cout << "Count of positive integers: " << i << endl; cout << "Count of negative integers: " << j << endl; return 0;}
2.10自定义类型
类型别名: 1 typedef 已有类型名 新类型名表 (从C继承而来) typedef double Area, Volume; typedef int Natural; Natural i1,i2; Area a; Volume v; 2 using 新类型名 = 已有类型名 using Area = double; using Volume = double;枚举类型: 定义方式:将全部可取值一一列出来 (这种是不限定作用域的枚举类型,从C中继承来)不限定作用域枚举类型说明:
枚举元素是常量,不能对它们赋值 枚举元素具有默认值,它们依次为: 0,1,2,......。 枚举值可以进行关系运算。 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。 枚举值可以赋给整型变量。(因为枚举是整型的子集)//2-11#includeusing namespace std;enum GameResult {WIN, LOSE, TIE, CANCEL};int main(){ GameResult result; enum GameResult omit = CANCEL; //声明枚举可以不带enum关键字 for(int count = WIN; count <= CANCEL; count++){ //枚举值可以赋给整型变量.枚举值可以进行关系运算。 result = GameResult(count); //整数类型赋值给枚举类型要进行强制转换 if(result == omit) cout << "The game was cancelled" << endl; else{ cout << "The game was played "; if(result == WIN) cout << "and we won!"; if(result == LOSE) cout << "and we lost."; cout << endl; } } return 0;}
auto类型与decltype类型
auto:编译器通过初始值自动推断变量的类型 例如:auto val = val1 + val2; 如果val1+val2是int类型,则val是int类型; 如果val1+val2是double类型,则val是double类型。decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量 例如:decltype(i) j = 2;//表示j以2为初始值,但是j的类型和i一样。