程序员教程-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 ...
随机推荐
- 【Bitmap Index】B-Tree索引与Bitmap位图索引的锁代价比较研究
通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的“高昂代价”.位图索引会带来“位图段级锁”,实际使用过程一定要充分了解不同索引带来的锁代价情况. 1.为比较区别,创建两种索引类型 ...
- Oracle 存储过程发送邮件
CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT VARCHAR2, ...
- hashcode 知识点
java中常用的哈希码的算法. Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样. String类的hashCode.根据Str ...
- handler之责任链模式
https://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html
- sql存储过程输出
1.存储过程写法 create procedure [dbo].[Y_GetICBillNo] @IsSave smallint, @FBillType int, @BillID VARCHAR (5 ...
- asp.net后台正则表达式验证手机号码邮箱
//如果文本中可以为空的为NO,文本中内容不为空 if (input.nullable == "no" || !isnull(input.value)) { //文本中值的类型 s ...
- 如何更改tomcat7及以上版本内存设置
http://jingyan.baidu.com/article/295430f1c22a940c7e0050fb.html?qq-pf-to=pcqq.c2c 当在tomcat的webapps文件夹 ...
- C++进阶--const和函数(const and functions)
// const和函数一起使用的情况 class Dog { int age; string name; public: Dog() { age = 3; name = "dummy&quo ...
- Spring和Quartz集成
本文转载自:http://blog.csdn.net/u010648555/article/details/54891264 Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企 ...
- AWS ECU SSH无法连接问题处理
AWS ECU SSH无法连接问题处理,因同事误操作导致/var/empty/sshd目录权限为771,需要修改为711,因AWS只有一台实例,所以需要通过建立临时实例来挂载“卷”来修改/var/ ...