关于我们
![]() ![]() |
双语版C++程序设计(第3版) 读者对象:本书可作为高等学校计算机软件工程和其他理工类专业的C++程序设计双语教材,也可供程序员和编程爱好者参考使用。
本书由在计算机程序设计方面有着丰富教学和实践经验的中外作者合作编写,并在其第2版的基础上进行了修订与更新。本书内容共14章,由浅入深、全面介绍了C++程序设计方法。本书通俗易懂,所有实例经过精心挑选、贴近生活,尤其强调读者的亲自参与意识。大多数章都为初学者提供了常见错误分析,所选习题可提高读者上机编程的兴趣。本书是国内首次出版的中英文对照混排式双语版C++程序设计教材的更新版,既方便初学者熟悉相关概念和内容,也便于英语非母语的读者熟悉英文专业词汇。本书可作为高等学校计算机、软件工程和其他理工类专业的C++程序设计双语版教材,也可供程序员和编程爱好者参考使用。
Paul Kelly,爱尔兰都柏林理工大学(TUD)的高级讲师Paul Kelly。Kelly 老师长期从事程序设计类课程的教学工作,在程序设计类课程教学方面教学实践经验丰富,在国外已先后出版多本程序设计语言类书籍。苏小红,哈尔滨工业大学计算机学院博士生导师,计算机应用技术专家,研究领域主要是色彩匹配,信息融合,空间计算,人工神经网络,进化算法,计算机图形学,灰色预测,彩色图像处理等。
目??录
Chapter One Typographic Conventions(绪论) 1 1.1?What is a computer program? (什么是计算机程序?) 1 1.2?Developing a computer program(开发计算机程序) 2 1.2.1?Program development cycle 2 1.3?Learning C++(学习C++) 4 1.4?Web site for this book(本书的网站) 4 1.5?Brief history of C++(C++简史) 4 1.6?ANSI/ISO C++ standard(ANSI/ISO C++标准) 5 Chapter Two Beginning to Program in C++(C++编程入门) 6 2.1?Constants(常量) 6 2.2?Variables(变量) 6 2.3?Simple output to the screen(简单的屏幕输出) 7 2.4?Comments(注释) 9 2.5?Data types(数据类型) 10 2.5.1?Short integer data types 10 2.5.2?Long integer data types 10 2.5.3?Boolean data types 11 2.5.4?Double floating-point data types 11 2.5.5 Unsigned integer data types 11 2.6?Data type sizes(数据类型的大小) 11 2.7?Operators (运算符) 12 2.7.1?The assignment operator 12 2.7.2?Arithmetic operators 12 2.7.3?Increment and decrement operators 13 2.7.4?Combined assignment operators 15 2.8?Operator precedence(运算符的优先级) 16 2.9?Data type conversions and casts(类型转换和强转) 18 Programming pitfalls 20 Quick syntax reference 21 Exercises 22 Chapter Three Keyboard Input and Screen Output(键盘输入和屏幕输出) 26 3.1?Simple keyboard input(简单的键盘输入)? 26 3.2?Manipulators(流操纵符) 28 3.3?Single-character input and output(单个字符的输入和输出) 30 Programming pitfalls 32 Quick syntax reference 32 Exercises 32 Chapter Four Selection and Iteration(选择与循环) 34 4.1?Selection(选择) 34 4.1.1?The if statement 34 4.1.2?The if-else statement 35 4.1.3?Compound statements 36 4.1.4?Logical operators 37 4.1.5?Nested if statements? 37 4.1.6?The switch statement 37 4.1.7?The conditional operator ?: 39 4.2?Iteration(循环) 40 4.2.1?The while statement 40 4.2.2?The do-while loop? 42 4.2.3?The for statement? 43 4.2.4?Nested loops 45 Programming pitfalls 47 Quick syntax reference 49 Exercises 50 Chapter Five Arrays and Structures(数组和结构体) 53 5.1?Arrays(数组) 53 5.1.1?Introduction 53 5.1.2?Initialising an array 56 5.1.3?Two-dimensional arrays? 57 5.1.4?Initialising a two-dimensional array 59 5.1.5?Multi-dimensional arrays 60 5.2?Structures(结构体) 60 5.2.1?Introduction 60 5.2.2?Declaring a structure 61 5.2.3?Initialising a structure variable 63 5.2.4?Nested structures 64 5.3?The typedef statement(typedef 语句) 65 5.4?Arrays of structures(结构体数组) 66 5.5?Enumerated data types(枚举数据类型) 66 Programming pitfalls 68 Quick syntax reference 68 Exercises 69 Chapter Six Strings(字符串) 72 6.1?C-strings(C风格字符串) 72 6.2?C-string input and output(C风格字符串的输入和输出) 73 6.3?Accessing individual characters of a C-string(访问C风格字符串中的单个字符) 77 6.4?C-string functions(C风格字符串函数) 77 6.4.1?Finding the length of a C-string 78 6.4.2?Copying a C-string 78 6.4.3?C-string concatenation 79 6.4.4?Comparing C-strings 79 6.4.5?Other C-string functions 79 6.4.6?Converting numeric C-strings to numbers 80 6.5?C++ strings(C++ 字符串) 80 6.5.1?String initialisation and assignment 82 6.5.2?String concatenation 84 6.5.3?String length, string indexing and sub-strings 85 6.5.4?String replace, erase, insert and empty strings 86 6.5.5?String searching 88 6.5.6?String comparisons 89 6.5.7?String input 91 6.5.8?String conversions 92 6.6?Arrays of strings(string 类型的数组) 93 6.7?Character classification(字符分类) 94 Programming pitfalls 96 Quick syntax reference 96 Exercises 97 Chapter Seven Functions(函数) 100 7.1?Introduction(引言) 100 7.2?Function arguments(函数实参) 102 7.3?Default parameter values(默认的形参值) 105 7.4?Returning a value from a function(从函数返回一个值) 106 7.5?Inline functions(内联函数) 107 7.6?Passing arguments by value(按值传递实参) 108 7.7?Passing arguments by reference(按引用传递实参) 109 7.8?Passing a one-dimensional array to a function(向函数传递一维数组) 112 7.9?Passing a multi-dimensional array to a function(向函数传递多维数组) 115 7.10?Passing a structure variable to a function(向函数传递结构体变量) 116 7.11?Passing a string to function(向函数传递字符串) 118 7.11.1?Passing a C++ string to a function 118 7.11.2?Passing a C-string to a function 119 7.12?Recursion(递归) 120 7.13?Function overloading(函数重载) 122 7.14?Storage classes auto and static (auto 和 static 存储类型) 123 7.14.1?auto 123 7.14.2?static 124 7.15?The scope of a variable(变量的作用域) 125 7.15.1?Block scope 125 7.15.2?Global scope 126 7.15.3?Reusing a variable name 127 7.16?Mathematical functions(数学函数) 129 7.16.1?Some trigonometric functions 129 7.16.2?Pseudo-random number functions 130 Programming pitfalls 132 Quick syntax reference 132 Exercises 133 Chapter Eight Objects and Classes(对象和类) 137 8.1?What is an object? (什么是对象?) 137 8.2?What is a class? (什么是类?) 137 8.3?Further examples of classes and objects(类和对象的更进一步的示例) 140 8.3.1?A student class 140 8.3.2?A bank account class 140 8.4?Abstraction(抽象) 141 8.5?Constructing a class in C++(用C++构造一个类) 142 8.6?Using a class: defining and using objects(使用类:定义和使用对象) 144 8.7?Abstract data types(抽象数据类型) 145 8.8?Constructors(构造函数) 146 8.9?Default class constructor(默认的类构造函数) 148 8.10?Overloading class constructors(重载类构造函数) 149 8.11?Constructor initialisation lists(构造函数初始化列表) 151 8.12?Default argument values in a constructor(构造函数中的默认实参值) 152 8.13?static class data members(静态类数据成员) 154 8.14?Using return statement in a member function(在成员函数中使用return语句) 157 8.15?Inline class member functions(内联成员函数) 159 8.16?Class interface and class implementation(类的接口和类的实现) 160 8.16.1?Separation of class interface and class implementation 162 8.16.2?Use of namespaces in header files 164 Programming pitfalls 167 Quick syntax reference 167 Exercises 167 Chapter Nine Pointers and Dynamic Memory(指针和动态内存分配) 171 9.1?Variable addresses(变量的地址) 171 9.2?Pointer variables(指针变量) 172 9.3?The dereference operator *(解引用运算符*) 173 9.4?Using const with pointers(使用const 修饰指针变量) 174 9.5?Pointers and one-dimensional arrays(指针和一维数组) 175 9.6?Pointers and multi-dimensional arrays(指针和多维数组) 177 9.7?Pointers to structures(指向结构体的指针) 178 9.8?Pointers to class objects(指向类对象的指针) 179 9.9?Pointers as function arguments(指针变量作为函数实参) 180 9.10?Dynamic memory allocation(动态内存分配) 182 9.10.1?Allocating memory dynamically for an array 183 9.10.2?Initialisation with new 184 9.10.3?Allocating memory for multi-dimensional arrays 186 9.10.4?Out of memory error 187 Programming pitfalls 189 Quick syntax reference 190 Exercises 190 Chapter Ten Operator Overloading(运算符重载) 193 10.1?The need for operator overloading(运算符重载的必要性) 193 10.2?Overloading the addition operator +(重载加法运算符+) 193 10.3?Rules of operator overloading(运算符重载的规则) 200 10.4?Overloading ++(重载运算符++) 200 10.4.1?Overloading prefix and postfix forms of ++ 203 10.4.2?Improving the prefix ++ operator member function 206 10.5?Overloading relational operators(重载关系运算符) 206 10.6?Overloading << and >> (重载运算符<<和>>) 209 10.7?Conversion operators(转换运算符) 214 10.8?Use of friend functions(使用友元函数) 217 10.9?Overloading the assignment operator =(重载赋值运算符=) 218 10.9.1?A class with a pointer data member 218 10.9.2?Assigning one object to another 220 10.10?The copy constructor(拷贝构造函数) 229 10.11?Overloading the index operator [](重载下标运算符[ ]) 233 Programming pitfalls 236 Quick syntax reference 237 Exercises 237 Chapter Eleven Inheritance(继承) 240 11.1?What is inheritance? (什么是继承?) 240 11.2?Inheritance syntax(继承语法) 241 11.3?Passing arguments to a base class constructor(向基类的构造函数传递实参) 249 11.4?Protected class members(受保护的类成员) 253 11.5?Types of inheritance: public, protected and private(继承的类型:public、 protected和private) 256 11.6?Composition(组合) 258 11.7?Multiple inheritance(多重继承) 259 11.8?Virtual base classes(虚基类) 262 Programming pitfalls 265 Quick syntax reference 265 Exercises 266 Chapter Twelve Polymorphism(多态) 271 12.1?What is polymorphism? (什么是多态?) 271 12.2?Virtual functions(虚函数) 274 12.2.1?When to use virtual functions 279 12.2.2?Overriding and overloading 279 12.3?Abstract base classes(抽象基类) 280 Programming pitfalls 284 Quick syntax reference 284 Exercises 285 Chapter Thirteen Templates(模板) 288 13.1?Introduction(引言) 288 13.2?Function templates(函数模板) 288 13.3?Class templates(类模板) 292 Programming pitfalls 297 Quick syntax reference 297 Exercises 297 Chapter Fourteen Files and Streams(文件和流) 300 14.1?The C++ input/output class hierarchy(C++输入/ 输出类的层次结构) 300 14.2?Opening a file(打开文件) 301 14.3?File error checking(文件出错检查) 303 14.4?Single character I/O and detecting the end of a file(单字符的I/O和文件末尾 的检测) 304 14.5?Appending data to the end of a file(向文件末尾添加数据) 308 14.6?Reading lines from a file(从文件中读取行) 309 14.7?Random access(随机存取) 310 14.8?Object I/O(对象I/O) 313 14.9?Binary I/O(二进制I/O) 314 14.9.1?Serial writing of objects to a binary file 315 14.9.2?Serial reading of objects from a binary file 319 14.9.3?Binary I/O as class member functions 320 14.9.4?Binary file random access 321 Programming pitfalls 325 Quick syntax reference 325 Exercises 326 Appendix A List of C++ Keywords 329 Appendix B Precedence and Associativity of C++ Operators 330 Appendix C ASCII Character Codes 332 Appendix D Fundamental C++ Built-in Data Types 334 Appendix E Common iomanip Manipulators 335 Appendix F Escape Sequences 336 Appendix G The C++ Preprocessor 337
你还可能感兴趣
我要评论
|