《新手学C++》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:袁超等编著
  • 出 版 社:北京:北京希望电子出版社
  • 出版年份:2010
  • ISBN:9787894989901
  • 页数:508 页
图书介绍:

第1篇 简介 2

第1章 开始 2

1.1 C++简史 2

1.1.1 C++发展历程 2

1.1.2应先学习C语言吗 3

1.1.3 C++与面向对象编程(OOP) 4

1.2编程工具的安装与使用 7

1.2.1 ANSI标准以及标准化的重要性 7

1.2.2编程工具的安装 8

1.2.3编程工具的配置 10

1.3编程准备 12

1.4创建程序的步骤 13

1.4.1用编译器生成目标文件 14

1.4.2用链接器生成可执行文件 15

1.5小结 16

第2章 C++概述 17

2.1 Hello World!第一个C++程序 17

2.1.1打开编译器并新建源文件 17

2.1.2保存文件并输入代码 18

2.1.3编译并运行程序 19

2.1.4出错信息 21

2.2主函数 22

2.2.1最小的C++程序 22

2.2.2主函数的定义 23

2.2.3使用主函数的注意事项 23

2.2.4主函数的返回值 24

2.3标准库名字空间 25

2.3.1从程序了解名字空间 25

2.3.2名字空间解析 26

2.4预处理指示符 27

2.5输入与输出 28

2.5.1标准输出(cout) 29

2.5.2标准输入 32

2.5.3命令提示符窗口下怎样编译程序 36

2.5.4标准错误(cerr) 40

2.6关于注释 42

2.6.1单行注释 43

2.6.2多行注释 43

2.6.3使用注释应该注意些什么 44

2.7控制结构 47

2.7.1 while语句 47

2.7.2 for语句 50

2.7.3 if语句 51

2.8常见面试题 53

2.9小结 54

2.10习题 54

第2篇 基础入门 56

第3章 变量和基本类型 56

3.1基本内置类型 56

3.1.1整型 57

3.1.2算术类型可以带符号 60

3.1.3浮点型 63

3.2文字常量 64

3.2.1整型文字常量 64

3.2.2浮点型文字常量 67

3.2.3布尔值文字常量 68

3.2.4字符文字常量 68

3.2.5字符串文字常量 69

3.2.6转义字符 71

3.3变量 72

3.3.1变量的命名 75

3.3.2关键字的使用 75

3.3.3变量命名规则 76

3.3.4变量初始化 76

3.3.5变量的声明与定义 78

3.3.6名字的作用域 78

3.4 const限定符 81

3.4.1不使用const限定符 82

3.4.2使用const限定符 83

3.5引用 85

3.5.1什么是引用 85

3.5.2使用引用的注意事项 85

3.5.3引用是对象的别名 86

3.5.4多个引用如何定义 88

3.5.5带const限定符的引用 90

3.6使用typedef来创建类型别名 91

3.7枚举 92

3.7.1枚举的定义 92

3.7.2枚举成员是常量 94

3.7.3枚举定义了新的类型 95

3.8类类型 96

3.9常见面试题 96

3.10小结 97

3.11习题 97

第4章 表达式 99

4.1表达式的定义 99

4.2算术操作符 101

4.2.1+操作符 101

4.2.2-操作符 102

4.2.3*与/操作符 103

4.2.4%操作符 104

4.3关系操作符 108

4.4逻辑运算符 110

4.4.1逻辑运算符的使用 110

4.4.2使用逻辑操作符的注意事项 113

4.5位操作符 113

4.5.1什么是位操作符 114

4.5.2位与操作符 114

4.5.3位异或操作符 114

4.5.4位或操作符 115

4.5.5位移操作符 115

4.6赋值操作符 115

4.6.1什么是赋值操作符 115

4.6.2赋值操作符的左操作数必须是非const的左值 116

4.6.3赋值操作符的右结合性 118

4.6.4赋值操作符的优先级 119

4.6.5复合赋值操作符 120

4.7自增和自减操作符 121

4.7.1前置操作符 121

4.7.2后置操作符 122

4.8复合表达式的求值 123

4.8.1优先级 123

4.8.2结合性 124

4.8.3圆括号 126

4.9条件操作符 126

4.10常见面试题 127

4.11小结 129

4.12习题 129

第5章 语句 130

5.1简单语句 130

5.1.1简单语句的使用 130

5.1.2空语句 131

5.1.3空语句造成的错误 132

5.1.4表达式语句 133

5.2声名语句 133

5.3复合语句:大括号括起来的语句 133

5.3.1什么是复合语句 133

5.3.2复合语句也可是空语句 134

5.3.3复合语句中名字的作用范围 135

5.4语句作用域:语句的有效范围 137

5.5 if语句 138

5.5.1什么是if语句 138

5.5.2 else语句 140

5.5.3注意正确的书写缩进 143

5.6 switch语句 143

5.6.1使用switch语句 143

5.6.2 switch中的控制流 146

5.6.3在switch语句中慎用break语句 147

5.6.4 default标号 148

5.6.5使用switch语句需知 149

5.7 while语句:实现循环 150

5.7.1 while语句 150

5.7.2 while语句的使用 150

5.8 for语句:实现循环 152

5.8.1 for语句的简介与使用 152

5.8.2省略for语句头的某些部分 153

5.8.3 for语句头中的多个定义 155

5.9 do while语句:通过判断实现循环 155

5.10 break语句 158

5.11 continue语句:结束最近的循环语句 159

5.12 goto语句:实现函数内部的无条件跳转 160

5.12.1 goto语句简介 160

5.12.2使用goto语句需注意 161

5.13常见面试题 162

5.14小结 163

5.15 习题 163

第6章 数组 165

6.1一维数组 165

6.1.1一维数组的定义 165

6.1.2一维数组的初始化 167

6.1.3一维数组的操作 169

6.1.4数组不能直接复制与赋值 170

6.2二维数组 171

6.2.1二维数组的定义 171

6.2.2二维数组的初始化 173

6.2.3二维数组的操作 176

6.3多维数组 179

6.3.1多维数组的定义 179

6.3.2多维数组的初始化 180

6.3.3多维数组的操作 180

6.4字符数组 182

6.4.1字符数组的定义 182

6.4.2字符数组的初始化 182

6.4.3字符数组的操作 184

6.5常见面试题 185

6.6小结 186

6.7习题 186

第7章 字符串 187

7.1 C风格字符串 187

7.1.1 C风格字符串的使用 188

7.1.2永远不要忘记字符串结束符null 189

7.1.3调用者必须确保目标字符串具有足够的大小 190

7.1.4尽量使用标准库类型string 190

7.2 string类:长度可变的字符串 190

7.2.1 string类型的定义和初始化 191

7.2.2 string对象的读写 192

7.2.3 getline读取整行文本 193

7.2.4 string类型的size和empty操作 193

7.2.5 string类型的赋值与相加 194

7.3字符串的各种方法 195

7.3.1 strcpy():将一个字符串完全复制到另一个字符串 195

7.3.2 strcat():将一个字符串连接到另一个字符串的后面 196

7.3.3 strcmp():比较两个字符串 197

7.3.4 strlen():统计字符串的个数 199

7.4常见面试题 199

7.5小结 200

7.6习题 200

第8章 指针 202

8.1什么是指针 202

8.1.1内存简介 202

8.1.2获取变量的内存地址 204

8.1.3指针的定义与初始化 204

8.1.4使用“*”来操作指针变量 211

8.1.5指针、地址与变量 213

8.2指针的操作 213

8.2.1通过操作指针来操作指针所指向的值 213

8.2.2使指针指向另一个指针 215

8.3指针变量可以作为函数的参数 217

8.4使用指针操作数组 218

8.4.1如何使用指针操作数组 218

8.4.2输出数组元素的值 220

8.5指向const变量的指针与const指针 221

8.5.1指向const变量的指针 221

8.5.2 const指针 222

8.6常见面试题 224

8.7小结 225

8.8 习题 225

第9章 函数 227

9.1函数的定义 227

9.1.1函数原形 229

9.1.2函数的调用 231

9.1.3函数的返回类型 235

9.1.4函数形参表 236

9.1.5函数体为一个作用域 239

9.2参数传递 241

9.2.1形参与实参 241

9.2.2非引用形参:复制形参的值 241

9.2.3引用形参:形参只是实参的别名 242

9.2.4数组形参 246

9.3主函数 249

9.3.1主函数的类型 249

9.3.2 return语句 250

9.4嵌套与递归 253

9.4.1函数的嵌套调用 253

9.4.2函数嵌套调用的实例 254

9.4.3函数的递归 255

9.4.4函数递归的实例 255

9.5函数重载 256

9.6常见面试题 257

9.7小结 258

9.8习题 259

第3篇 类和数据抽象 262

第10章 标准库类型 262

10.1 using声明 262

10.2标准库string类型:对字符串的一般应用 264

10.2.1 string对象的定义和初始化 265

10.2.2 string对象的读写 266

10.2.3 string对象的size操作 267

10.2.4 string对象的empty操作 267

10.2.5 string对象的赋值操作 268

10.2.6 string对象的下标操作 269

10.2.7 string对象的相加操作 270

10.2.8 string对象的关系操作 273

10.2.9 string对象中字符的处理 275

10.3标准vector类型:一种类型对象的集合 280

10.3.1 vector对象的定义和初始化 280

10.3.2向vector对象添加元素 282

10.3.3 vector对象的empty与size操作 282

10.3.4 vector对象的下标操作 284

10.3.5 vector对象的复制操作 286

10.4迭代器 287

10.4.1 vector容器的迭代器类型 287

10.4.2迭代器的begin与end操作 287

10.4.3迭代器的解引用操作 288

10.4.4迭代器的关系操作 289

10.4.5迭代器的算术操作 290

10.5常见面试题 291

10.6小结 292

10.7习题 292

第11章 类 293

11.1类的定义与声明 293

11.1.1如果没有类会怎么样 293

11.1.2类定义 294

11.1.3类对象 296

11.1.4成员函数 298

11.1.5数据抽象与封装 303

11.1.6访问标号 303

11.1.7类声明与类定义的区别 306

11.1.8 inline(内联)函数 307

11.1.9结构与类 308

11.2类的作用域 309

11.2.1每个类都有一个作用域 309

11.2.2类中的成员可以在类外进行定义 310

11.2.3使用类中的成员 310

11.3构造函数 311

11.3.1定义构造函数 312

11.3.2类中可以声明多个构造函数 314

11.3.3构造函数的初始化 317

11.3.4数据成员初始化的顺序 322

11.3.5默认构造函数 324

11.3.6拷贝构造函数 327

11.4析构函数 328

11.4.1析构函数的定义 328

11.4.2合成析构函数 329

11.4.3析构函数的调用顺序 329

11.5隐含的this指针:指向类对象的指针 331

11.6友元:可以访问类的私有成员 334

11.6.1友元函数 334

11.6.2友元类 337

11.7 static成员 339

11.7.1类中的static成员 339

11.7.2 static成员函数 341

11.7.3 static数据成员 342

11.8常见面试题 344

11.9小结 345

11.10习题 345

第12章 重载操作符 347

12.1重载操作符简介 347

12.1.1重载操作符的定义 347

12.1.2可重载与不可重载的操作符 348

12.1.3重载并不改变优先级与结合性 348

12.1.4内置类型的内置操作不能重定义 348

12.1.5如何使用重载操作符 349

12.1.6重载操作符函数可以是类的成员函数 349

12.1.7重载操作符函数也可以是非成员函数 349

12.2算术操作符和关系操作符重载 349

12.2.1相等操作符 350

12.2.2关系操作符 352

12.2.3算术操作符 354

12.3输入和输出操作符重载 356

12.3.1输出操作符的重载 356

12.3.2输入操作符的重载 358

12.4赋值操作符重载 363

12.5自增与自减操作符重载 364

12.5.1前置操作 364

12.5.2后置操作 366

12.6常见面试题 369

12.7小结 370

12.8习题 370

第13章 继承性 372

13.1基类和派生类 373

13.1.1继承结构 373

13.1.2定义基类 375

13.1.3派生类的定义 377

13.1.4派生类的构造函数和析构函数 379

13.2继承方式 382

13.2.1继承方式简介 382

13.2.2 public继承实例 383

13.2.3 protected继承实例 386

13.2.4 private继承实例 388

13.3多继承:继承多个基类 392

13.3.1多继承的概念 392

13.3.2二义性问题 394

13.4虚基类 397

13.4.1虚基类的引入和说明 398

13.4.2虚基类的构造 401

13.5继承相关 401

13.5.1友元关系与继承 402

13.5.2继承与static成员 403

13.6常见面试题 404

13.7小结 406

13.8习题 407

第14章 多态性 408

14.1多态性 408

14.1.1没有多态将会遇到的问题 408

14.1.2多态的定义 411

14.1.3普通成员函数重载的方法 413

14.1.4普通成员函数在类中重载 417

14.1.5基类的成员函数在派生类中存在重载吗 418

14.1.6函数重载的注意事项 422

14.1.7函数重载的二义性 425

14.1.8构造函数重载 428

14.1.9基类指针指向派生类 432

14.2虚函数 436

14.2.1没有虚函数将会遇到的问题 436

14.2.2静态联编与动态联编 439

14.2.3虚函数 440

14.2.4虚函数的重定义 447

14.3常见面试题 450

14.4小结 452

14.5习题 452

第4篇 高级主题 456

第15章 命名空间 456

15.1命名空间的定义 456

15.1.1命名空间的定义 456

15.1.2命名空间的作用域 457

15.1.3添加新成员 458

15.1.4在命名空间外定义函数 460

15.2嵌套命名空间 461

15.2.1如何嵌套定义命名空间 461

15.2.2外围名字将被嵌套名字屏蔽 462

15.2.3注意嵌套命名空间中名字的作用域 463

15.2.4外围命名空间也可以使用嵌套命名空间中的名字 465

15.3命名空间别名 466

15.4未命名的命名空间 467

15.5命名空间中设定名字的优先级 470

15.6命名空间与重载 471

15.7常见面试题 473

15.8小结 474

15.9习题 474

第16章 模板 476

16.1函数模板 476

16.1.1未使用函数模板的程序 476

16.1.2函数模板的定义 478

16.1.3函数模板的使用 479

16.1.4函数模板与模板函数 481

16.1.5函数模板参数 481

16.2类模板 485

16.2.1类模板的定义 485

16.2.2类模板的使用 486

16.2.3模板类与类模板 487

16.3与typename具有相同含义的class 488

16.4模板形参与非类型模板形参 489

16.4.1模板形参 489

16.4.2非类型模板形参 491

16.5常见面试题 492

16.6小结 493

16.7习题 493

第17章 异常处理与错误 495

17.1为何需要异常处理 495

17.2 throw表达式 496

17.3 try块与catch的使用 497

17.4常见错误 499

17.5程序调试 501

17.5.1设置断点 501

17.5.2添加查看 504

17.6常见面试题 507

17.7小结 508

17.8习题 508