程序员教程-10章-C++程序设计
本来这章是不打算写了的,毕竟自己学的是JAVA,C++就不想看了,但毕竟还有一点时间,就把C++也看一下吧
目录结构
10.1 C++程序基础
10.1.1 数据类型
1 基本数据类型
2 常量和变量
3 复合数据类型
4 引用和指针
10.1.2 运算符、表达式和语句
10.1.3 基本输入/输出
10.1.4 函数
1 函数定义和声明
2 函数调用
3 内联函数
4 函数的重载
10.1.5 类与对象
1 类
2 对象
3 静态成员
4 this指针
5 友元
10.2 继承与多态
1 继承
2 多态
10.3 异常处理
10.4 标准库
10.4.1 I/O流库
10.4.2 string
1 声明string对象
2 string对象的操作
10.4.3 STL
1 算法
2 容器
3 迭代器
10.4.4 vector
1 初始化vector对象
2 vector对象的运算
C++语言是对C语言的扩展和超集,因此同时支持过程式和面向对象的程序设计泛型
10.1 C++程序基础
C++程序基础包括数据类型(基本内置类型、复合类型)、输入输出处理、语句、函数以及类等
10.1.1 数据类型
1 基本数据类型:继承C,扩展了布尔类型(bool)和宽字符类型(wchar_t)、UNICODE字符类型char16_t和char32_t
2 常量和变量
1)字面值常量
2)左值和右值:左值的实质是内存位置,右值的实质是数值,右值可以出现在赋值号的右边,但不能出现在赋值号的左边
3)定义常量:可以用宏定义和const定义常量
3 复合数据类型:C++的枚举、结构体、共同体和数组都是复合数据类型
4 引用和指针:引用为对象提供了另一个名字(别名),通过将声明符写成“&d"的形式来定义引用类型,其中"d"是声明的变量名
引用与指针不同:(1)不存在空引用;(2)一旦引用被初始化为一个对象,就不能再引用另一个对象;(3)引用必须在创建时被初始化
10.1.2 运算符、表达式和语句
C++继承了C语言的算术运算符,关系运算符,逻辑运算符,位运算符,赋值运算符和其他运算符,扩充了::,new,delete运算符,还支持对运算符的重载机制
10.1.3 基本输入/输出
C++使用称为iostream的I/O流库,还有iomanip,用于格式化
1)输出:cout<<d;
2)输入:cin>>d;
3)格式控制:精度和宽度
10.1.4 函数:库函数和自定义函数
1 函数的定义和声明:略
2 函数调用:略
3 内联函数:对于内联函数,编译器是将其函数体放在调用该内联函数的地方,不存在普通函数调用时栈记录的创建和释放开销
4 函数的重载:只要参数表中参数个数或类型不同,就视为不同的函数
10.1.5 类与对象
对象是人们要进行研究的任何事物,从最简单的整数到复杂的机器都可看作对象。具有相同或相似性质的对象的抽象就是类
1 类:有两种类型的成员:数据成员,成员函数
类成员有如下3种不同的访问权限:公有,私有,保护
2 对象:对象是类的实例
1)对象的创建:类的变量称为对象
2)对象的操作:.或->
3)构造函数:默认构造函数,构造函数的重载
4)析构函数:~
3 静态成员:static,静态数据成员,静态成员函数 ::
4 this指针:指向类的对象
5 友元:在C++的一个类定义中,可以指定某个全局函数、某个其他类或某个其他类的成员函数来直接访问该类的私有和保护成员,它们分别称为友元函数,友元类和友元类函数
10.2 继承和多态
1 继承:实现代码复用
2 多态:一个接口,多个方法:方法的重置或实现;纯虚函数
10.3 异常处理
异常是程序可能检测到的运行时刻不正常的情况。
try、catch、finally和throw是异常处理的关键字,它们配合起来工作
10.4 标准库
分为标准函数库和类库两部分。标准函数库包含了所有的C标准库,类库定义了一些常见操作的类,如I/O类,string类,数值类和STL的容器类、算法、函数对象、迭代器、分配器,以及异常处理类
10.4.1 I/O流库:iostream

10.4.2 string:C++的字符串标准库类型是重新定义的类string,使用string时不必再担心空间大小与字符串长短等问题
1 声明string对象:包含头文件<string>,string str




10.4.3 STL:(Standard Template Library)标准模板库:是一系列软件代码的统称,其代码从广义上分为三类:算法,容器和迭代器
STL被组织成下面的13个头文件:<algorithm> <deque> <functional> <iterator> <vector> <list> <map> <memory> <numeric> <queue> <set> <stack> <utility>
1 算法:主要由头文件<algorithm> <numeric> <functional>说明
2 容器

3 迭代器:由头文件<utility> <iterator> <memory>说明
10.4.4 vector
简单来说,vector是一个能够存放任意类型数据的动态数组
1 初始化vector对象


程序员教程-10章-C++程序设计的更多相关文章
- 程序员教程-9章-C程序设计
目录结构: 9.1 C语言基础 9.1.1 数据类型 1 基本数据类型 2 数组.字符数组与字符串 3 枚举类型 4 结构体.共用体和typedef 9.1.2 运算符与表达式 9.1.3 输入/输出 ...
- 程序员教程-11章-Java程序设计
自己是学java的,先看第十一章java吧. 列出章节目录,便于自己回忆内容. 11.1 Java语言概述 1 Java语言的特点 2 Java开发环境 11.2 Java语言基础 11.2.1 基本 ...
- 能让你成为更优秀程序员的10个C语言资源
能让你成为更优秀程序员的10个C语言资源 本文由 伯乐在线 - archychu 翻译自 mycplus.欢迎加入 技术翻译小组.转载请参见文章末尾处的要求. 一些人觉得编程无聊,一些人觉得它很好玩. ...
- 【译】x86程序员手册10 - 第4章系统架构
1.1.2 Part II -- Systems Programming 系统编程 This part presents those aspects of the architecture that ...
- 成为优秀 Node.js 程序员的10个习惯
JavaScript出现近二十年了,但由于其有些问题不能解决,使得像Python和Ruby这一类的语言很吸引人,这些问题包括命令行接口.交互式开发环境.包的管理和没有一个有组织开源社区等.幸亏Node ...
- Python程序员的10个常见错误(转)
add by zhj:虽然学Python也有两年了,但这些问题的确容易犯,看来对Python的理解还有些地方不深入.先转了,有时间再好好看 译文:http://blog.jobbole.com/682 ...
- Python程序员的10个常见错误
关于Python Python是一门解释性的,面向对象的,并具有动态语义的高级编程语言.它高级的内置数据结构,结合其动态类型和动态绑定的特性,使得它在快速应用程序开发(Rapid Applicatio ...
- [转]成为优秀Java程序员的10大技巧
转自:http://www.codeceo.com/article/10-good-java-programmer-tips.html Java程序员有许多应遵循的守则或最佳实践方式.本文概述了每个开 ...
- 【译】x86程序员手册37-第10章 初始化
Chapter 10 Initialization 第10章 初始化 After a signal on the RESET pin, certain registers of the 80386 a ...
随机推荐
- 设置Linux系统的空闲等待时间TMOUT
为了增强Linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现.将以下字段加入到/etc/profile 中即可(对所有用户生效). export TM ...
- 理解js事件循环(event loop)
队列:先进先出 栈:后进先出 javascript的Event Loop 和 Node.js的Event Loop 区别: js(运行在浏览器),有主线程.异步任务队列的概念: node.js使用li ...
- HBase的Scan
HBase的Scan和Get不同,前者获取数据是串行,后者则是并行:是不是有种大跌眼镜的感觉? Scan有四种模式:scan,(Table)snapScan,(Table)scanMR,snapsho ...
- Decision_function:scores,predict以及其他
机器学习的评估 PR曲线用于positive类数据占比比较小,或者你更加在意false postion(相比于false negative):其他情况采用ROC曲线:比如Demo中手写体5的判断,因为 ...
- Java 接口 interface implements
接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定 ...
- AI(四): 微信与luis结合(下)
LUIS(Language Understanding Intelligent Services)是微软新近推出了的的语义理解服务,可以方便用户进行API调用,创建自己场景的语义理解服务,网址为 ht ...
- Sql Server Report Service 的部署问题
近期在研究SSRS部署问题,因为以前也用到过SSRS报表,但当时开发的报表是有专门的集成系统的,不需要我自己去部署,所以对这一块的部署也不熟悉,我记得当时我是直接开发出一个SSRS 报表,然后会通过自 ...
- FPGA将加速今日新型态数据中心的主流应用
在这个强调智能与联网的时代,可编程逻辑栅阵列 (FPGA)已经成为一个重要且不可或缺的元件.以全球500亿个联网设备,一年所产生的数据量将不计其数.从数据中心.5G通讯.虚拟网络功能,到嵌入式系统,F ...
- BEGIN-2_蓝桥杯_序列求和
问题描述 求1+++...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+++...+n的值. 样例输入 样例输出 样例输入 说明:有一些试题会给出多组样例输入输 ...
- ROS+L2TP+IPSEC
在WIN7X64,WIN8.1,WIN10,MACBOOK和苹果的IOS10调试L2TP/IPSEC通过 请注意IPSEC,要求客户端IP必须唯一,不可以有重复,那么访问VPN服务器的客户端IP,就不 ...