程序员教程-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 ...
随机推荐
- hybrid app、react-native 区别
hybrid app.react-native 区别: 项目 hybrid app react-native 组件 用HTML.CSS.JavaScript实现页面的制作,然后运行在Webview上( ...
- requestAnimationFrame 提高动画性能的原因
与setTimeout相比,requestAnimationFrame最大的优势是由系统来决定回调函数的执行时机.具体一点讲,如果屏幕刷新率是60Hz,那么回调函数就每16.7ms被执行一次,如果刷新 ...
- JZ2440 裸机驱动 第9章 中断体系结构
本章目标: 了解ARM体系CPU的7种工作模式 了解S3C2410/S3C2440中断体系结构 掌握S3C2410/S3C2440的中断服务程序的编写方法 9.1 S3C241 ...
- R(1):中文乱码解决方案
读取csv文件出现中文乱码方案,增加编码格式参数 read.csv(trainPath,header=TRUE,stringsAsFactors=TRUE,encoding = "UTF-8 ...
- Eclipse中不让.svn文件夹一同编译到class中
开发过程中一直在用SVN做版本控制,使用Eclipse编译文件后,classes文件中总是有.svn的文件夹,在做提交时有时会报错,这些文件没有什么用,而且影响build的速度. 更恼火的是, 如果一 ...
- MFC的组合框(ComboBox)控件切换下拉样式
由于课题的需求需要做MFC串口程序,看了百度下载的串口助手的界面风格,发现这个设计很好 波特率的组合框只给出了5个可选数值,然后第6个选项是Custom,即手动输入. 实际上DCB结构的BaudRat ...
- 【ActiveMQ入门-4】ActiveMQ学习-异步接收
总体说明: 1. 一个生产者/发布者:可以向多个目的地发送消息: 2. 每个目的地(destination)可以有多个订阅者或消费者: 如下图所示: 程序结构: 1. Publisher.java ...
- python2.7中出现TypeError: must be type, not classobj
class Person: def __init__(self,name,age): self._name = name self._age = age class Student(Person): ...
- Linux命令详解-Apache网站服务器配置和管理
1.Apache网站服务器配置和管理 1.源码包安装 2.rpm包安装 rpm –a | grep httpd 3.启动服务 service httpd start 4.配置文件: /etc/http ...
- sklearn的BaseEstimator、transformerMixin、ClassifierMixin、RegressorMixin、ClusterMixin介绍
class sklearn.base.BaseEstimator:为所有的estimators提供基类 方法: __init__() 初始化方法 get_params(deep=True) 获取这个估 ...