1.6 C++程序

一.我们在上一节的课程中已经学习到了如何去定义一个类,以及如何去对这个类定义一些成员属性和成员方法,在本节中,我们将
更加完善这个例子
二.改进后的Sales_item类
2.1 假定给定ISBN 的所有交易出现在一起。程序将把每个 ISBN 的数据组合至
命名为 total 的 Sales_item 对象中。从标准输入中读取的每一笔交易将被存
储到命名为 trans 的第二个 Sales_item 对象中。每读取一笔新的交易,就将
它与 total 中的 Sales_item 对象相比较,如果对象含有相同的 ISBN,就更新
total ;否则就输出 total 的值,并使用刚读入的交易重置 total。
2.2 见代码文件(Sales_item.h Sales_item.cpp TestSaleitem.cpp)
三.练习
Exercise
1.25:
使用源自本书配套网站的 Sales_item.h 头文件,编译并
执行本节给出的书店程序。
//已经能够独立写出该程序了
Exercise
1.26:
在书店程序中,我们使用了加法操作符而不是复合赋值操
作符将 trans 加到 total 中,为什么我们不使用复合赋
值操作符?
//我们只是重载了operator+操作符,而没有对operator+=进行重载,因此无法使用复合赋值操作符
四.本章节提到的术语
4.1 argument(实参)
传递给被调用函数的值
4.2 block(语句块)
被花括号括起来的语句组(语句序列)
4.3 buffer(缓冲区)
一段用来临时存放数据的存储区域,我们的键盘也有缓冲区,我们在C语言中写的模拟
文件复制的例子中也提到了缓冲区
4.4 built-in type(内置类型)
C++语言内置的最小的数据类型(比如:int,float,double等)
4.5 std::cerr(标准命名空间中的错误输出)
用于对程序进行调试时使用的输出,这个输出流对象不支持输出重定向
4.6 std::cin(标准命名空间中的标准输入)
用于从标准输入来输入数据的流对象
4.7 class(类定义关键字)
是C++用来定义类类型的很重要的一个关键字,类类型也是一种自定义数据类型
4.8 class type(类类型)
要与class的概念做好明确的区分,class只是定义类类型的关键字,而类类型则指
已经定义好的具有类的特征的类型的实体
4.9 std::clog(标准日志输出)
一般将程序的执行过程所需要的调试信息输出到终端上给程序员看,该流对象同样不支持
输出重定向
4.10 comments(注释)
在C++中,以//作为单行注释,/**/或/*******/作为多行注释,注释是为了让自己写的代码能够更容易被其他人读懂的文本
在编译时,会直接跳过注释的部分
4.11 condition(条件)
一般出现在C++的循环语句中,作为循环结束的介质而作为循环的一部分,条件只有两个值,一个是true,一个是false
在C++中只要任何的数据最终都能被显式或隐式被转换为0或1的数据都能被称为是条件,C++规定,只要是非0都是真
4.12 std::cout(标准输出流对象)
使用最多的输出流对象,支持输出重定向
4.13 curly brace(花括号)
花括号分为左花括号和右花括号,花括号规定了一个语句块
4.14 data structure(数据结构)
数据结构是用来描述数据以及对该数据所支持哪些操作的术语
4.15 edit-compile-debug(编辑-编译-调试)
使程序能够正确执行的过程
4.16 end-of-file(文件结束符)
用于描述文件结束的标志,在C语言中一般是EOF这个宏
4.17 expression(表达式)
C++中最小的计算的单元,一个表达式可以由多个参与该表达式计算的元素构成,每一个表达式
都有自己的计算结果
4.18 for-statement(for语句)
可以提供固定的循环次数,并且能够直接定义循环变量的循环语句
4.19 function(函数)
有名字的计算单元
4.19 function body(函数体)
用于定义函数具体功能实现的语句块
4.20 function name(函数名)
函数的名字,一般是调用者才关心函数的名字
4.21 header file(头文件)
包含函数或其他类的声明的文本文件,一般配合#include语句来将头文件中所有的内容
插入到当前要使用的模块中
4.22 if statement(if语句)
根据指定条件来执行的语句(条件可以是真,也可以是假),往往配合else语句一起使用,
假如if为真才执行,那么当条件为假时,将执行else语句块中的语句序列
4.23 iostream(输入输出流类)
这个类里面包含了istream类和ostream类,提供面向流的输入和输出
4.24 istream(输入流类)
提供面向流的输入流对象
4.25 ostream(输出流类)
提供面向输出的流对象
4.26 standrad library type(标准库类型)
是由C++标准库定义的类型
4.27 main function(主函数)
执行C++程序时,操作系统会显式调用的函数
4.28 manipulator(操纵符)
在读或写时,用来操作流本身的符号(其实本质上是函数),例如std::endl
4.29 member function(成员函数)
在定义类时,类中会有属性和方法,属性就是数据,方法就是成员函数,成员函数是
用来对类中的成员进行操作的函数(与普通函数相比,最大的不同就是作用范围不同)
4.30 method(方法)
成员函数的同义词
4.31 namespace(命名空间)
为了解决与标准库中定义的函数,变量,对象名冲突的问题,所引入的概念,
命名空间的设计初衷就是为了解决自定义数据类型与标准库所定义的符号
名发生冲突的问题的
4.32 parameter list(形参列表)
用来规定函数在定义是就应该接收什么样子的参数形式的,包括参数的类型
个数,是否有默认值;形参是站在定义者的角度来说的,实参是站在使用者的
角度来说的
4.33 preprocessor directive(预处理指示)
C++的预处理指令,比如#define,#include这一系列以#开头的东西,预处理指示是
必须要在编译程序的阶段时候就要全部处理完
4.34 return type(返回类型)
这个往往出现在函数的定义过程中,用于描述函数的返回类型的
4.35 source file(源文件)
源文件往往是用来实现函数或类的成员函数的,而头文件则更注重函数或类的声明
4.36 standrad error(标准错误)
一定要和标准错误输出加以区分,标准错误往往指的是错误的信息,而错误输出则
指的是错误输出流对象
4.37 standrad input(标准输入)
由操作系统所规定的,将某个输出的设备绑定到标准输入这个文件描述符上(一般是0)
4.38 standrad library(标准库)
指C++标准库中定义的类库,这里的标准库往往更偏向于已经封装好的二进制的那种库文件(.lib或.dll)
并以头文件的形式提供给用户
4.39 standrad output(标准输出)
由操作系统指定将某个文件描述符绑定到标准输出上(往往是屏幕),一般是1
4.40 statement(语句)
C++中能够被执行的最小的单元,一个语句以;结尾
4.41 std
C++的标准命名空间,比如std::cout就表示使用了标准命名空间中的标准输出流对象
4.42 string lieral(字符串字面量)
由""引起来的字符串常量,在C++和C中具体的类型一般是const char*类型
4.43 uninitialized variable(未初始化的变量)
指在定义变量时没有给变量赋初始值的变量(未初始化变量的值是内存中的垃圾值
,是引起bug的主要原因,一定要注意)
4.44 while statment(while语句)
一种循环控制语句,他不能像for语句那样子现场定义和使用循环变量
4.45 operator() ==>调用操作运算符(用于对函数进行调用的)
4.46 operator++() ==>自增运算操作符
4.47 operator+=() ==>复合赋值操作符
4.48 operator.() ==>.操作符
4.49 operator::() ==>作用域操作符
4.50 operator=() ==>赋值操作符
4.51 operator<<() ==>左移运算操作符
4.52 operator>>() ==>右移运算操作符
4.53 operator==() ==>判等操作符
4.54 operator!=() ==>判不等操作符
4.55 operator<=() ==>小于等于操作符
4.56 operator<() ==>小于运算操作符
4.57 operator>=() ==>大于等于操作符
4.58 operator>() ==>大于操作符

本节代码:https://files.cnblogs.com/files/blogs/792763/1.6.zip?t=1763280040&download=true

posted @ 2025-11-16 16:00  蜡笔小新Pointer  阅读(0)  评论(0)    收藏  举报