《C++语言程序设计》复习大纲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<iostream> Using namespace std; Class Rectangle { Public: Rectangle(int top,int left,int bottom,int right) ~Rectangle(){}
Int GetTop() const {return itsTop;} Int GetLeft() const {return itsLeft;} Int GetBottom() const {return itsBottom;} Int GetRight() const {return itsRight;} Void SetTop(int top) {itsTop=top;} Void SetLeft(int left) {itsLeft=left;} Void SetBottom(int bottom) {itsBottom=bottom;} Void SetRight(int right) {itsRight=right;} Int GetArea() const; Private: Int itsTop; Int itsLeft; Int itsBottom; Int itsRight; }; Rectangle::Rectangle(int top,int left,int bottom,int right) { itsTop=top; itsLeft=left; itsBottom=bottom; itsRight=right; } Int Rectangle::GetArea() const { Int Width=itsRight-itsLeft; Int Height=itsTop-itsBottom; Return (Width*Height); } Int main() { Rectangle MyRectangle(100,20,50,80); Int Area=MyRectangle.GetArea(); Cout<<”Area:”<<Area<<endl; Return 0; }
第一章 绪论 1.结构化程序设计方法把数据和处理数据的过程分离为相互独立的实体。 2.面向对象的方法:首先,它将数据及对数据的操作方法放在一起,作为一个相互依存、不 可分离的整体——对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用 本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消 息进行通信。 3.面向对象的基本概念 ①对象 面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系 统的一个基本单位。对象由一组属性和一组行为构成。 ②类 面向对象方法中的“类”,是具有相同属性和服务的一组对象的集合。 ③封装 封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的 系统单位,并尽可能隐蔽对象的内部细节。 ④继承 特殊类的对象拥有其一般类的全部属性与服务,称做特殊类对一般类的继承。 ⑤多态性 多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的 数据类型或表现出不同的行为。 4.面向对象的软件开发 面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括面向对象的分析 (OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)面向 对象的软件维护(OOSM)等主要内容。 5.完整的程序过程 编译程序有 3 中不同类型:汇编程序、编译程序、解释程序 C++程序的开发通常要经过编辑、编译、连接、运行调试这几个步骤。 *cpp——*obj——*exe 第二章 C++简单程序设计 5.文件 iostream 中声明了程序所需要的输入和输出操作的有关信息。“using namespace”是 针对命名空间的指令。 6.C++的基本数据类型增加了 bool(布尔型),取值有 true、false。 7.预定义的插入符和提取符:“<<”是预定义的插入符,“>>是预定义提取符。 8.执行下列语句后,a,b,c 三个变量的值为多少?
a=30; b=a++; c=++a; 答案:31,30,32 9.修改下面这个程序中的错误,改正后它的运行结果是什么? ①#include<iostream> ②using namespace std; ③int main() ④int i ⑤int j; ⑥i=10; ⑦j=20; ⑧cout<<”i+j=<<i+j; ⑨return 0;} 答案:修改:③int main() 改为 int main(){; ④int i 改为 int i; 、
编写程序:
答案见课堂作业本。
第五章
26.静态数据成员:采用 static 关键字来声明为静态成员。类属性是描述类的所有对象共同特
征的一个数据项,对于任何对象实例,它的属性值是相同的。静态数据成员具有静态生存期
访问用法是“类名::标识符”。
27.静态函数成员:静态函数成员可以直接访问该类的静态数据和函数成员。而访问非静态
形式为:new 数据类型(初始化参数列表);运算符 delete 用来删除由 new 建立的对象,释
放指针所指向的内存空间。格式为:delete 指针名;
32.string 类:string 类提供了对字符串的运行处理所需要的操作。使用 string 类需要包含头
文件 string。String 类封装了串的属性并提供了一系列允许访问这些属性的函数。(自动生存
第六章 数组、指针与字符串
30、this 指针:this 指针是一个隐含于每一个类的非静态成员函数中的特殊指针(包括构造
函数和析构函数),它用于指向正在被成员函数操作的对象。this 指针明确地指出了成员函
数当前所操作的数据所需的对象。
31.动态内存分配:运算符 new 的功能是动态分配内存,或者称为动态创建堆对象,语法
24.定义并实现一个矩形类,有长、宽两个属性,由成员函数计算矩形的面积。 编写程序: #include<iostream> Using namespace std; Class Rectangle { Public: Rectangle(float len,float width)
Baidu Nhomakorabea
{ Length=len; Width=width; } ~Rectangle(){}; Float GetArea(){return Length*Width;} Float GetLength() {return Length;} Float GetWidth() {return Width;} Private: Flaot Length; Float Width; }; Void main() { Float length,width; Cout<<”请输入矩形的长度:”; Cin>>length; Cout<<”请输入矩形的宽度:”; Cin>>width; Rectangle r(length,width); Cout<<”长为”<<length<<”宽为”<<width<<”矩形的面积为:”<<r.GetArea()<<endl; }
⑧cout<<”i+j=<<i+j 改为 cout<<”i+j=”<<i+j<<endl; 运行结果为:i+j=30 第三章 函数 10.引用传递:引用是一种特殊类型的变量,可以被认为是另一个变量的别名。 11.内联函数:函数可以提高开发效率,同时也会降低程序的执行效率。内联函数不是在调 用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。 12.带默认形参值的函数:函数在定义时可以预先声明默认的形参值。有默认值的形参必须 在形参列表的最后,也就是说,在有默认值的形参右面,不能出现无默认值的形参。 13、函数重载:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译 器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。 重载函数的形参必须不同:个数不同或者类型不同。 第四章 14.抽象:面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。对一个问题的抽象应该包括两个方面:数据抽象和行为抽象。 15.封装:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也 就是将数据与操作数据的函数代码进行有机的结合,形成“类”,其中的数据和函数都是类 的成员。 16.继承:C++语言提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具 体、更详细的说明。 17.多态:多态性是指一段程序能够处理多种类型对象的能力。在 C++语言中,这种多态性 可以通过强制多态、重载多态、类型参数化多态、包含多态 4 中形式来实现。包含多态和类 形参数化多态属于一般多态性,是真正的多态性。 18.类和对象:在面向对象程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数 与数据的封装,它是对问题的抽象描述。 19.类成员的访问控制 访问控制属性可以有一下 3 种:共有类型(public)、私有类型(private)和保护类型(protected)。 除友元函数外,私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的。 保护类型成员的性质和私有成员的性质相似(类之间的访问属性相似),其差别在于继承过 程中对产生的新类影响不同。 20.在 C++中,类的对象就是该类的某一特定实体(也称实例)。 21.构造函数:构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化 为一个特定的状态。构造函数的函数名与类名相同,而且没有返回值。 22.析构函数:它是用来完成对象被删除前的一些清理工作。析构函数是在对象的生存期即 将结束的时候被自动调用的。析构函数不接收任何参数。 23.设计并测试一个名为 Rectangle 的矩形类,其属性为矩形的左下角与右上角两个点的坐标, 根据坐标能计算矩形的面积。 编写程序:
}
25.定义一个复数类 Complex,使得下面的代码能够工作。
Complex c1(3,5);
//用复数 3+5i 初始化 c1
Complex c2=4.5;
//用实数 4.5 初始化 c2
c1.add(c2);
//将 c1 与 c2 相加,结果保存在 c1 中
c2.show();
//将 c1 输出(这时的结果应该是 7.5+5i)
空间)
第七章 继承与派生
33.类的继承,是新的类从已有类那里得到已有的特性。从已有类产生新类的过程就是类的
派生。
34.原有的类成为基类或父类,产生的新类成为派生类或子类。
35.通过类的派生可以建立具有共同关键特征的对象家族,从而实现代码的重用。
25.定义一个 Circle 类,有数据成员 radius(半径),成员函数 getArea(),计算圆的面积, 构造一个 Circle 的对象进行测试。 编写程序: #include<iostream> Using namespace std; Class Circle { Public: Circle(float radius) {Radius=radius;} ~Circle() {} Float GetArea() {return 3.14*Radius*Radius;} Private: Float Radius; }; Void main() { Float radius; Cout<<”请输入圆的半径:”; Cin>>radius; Circle p(radius); Cout>>”半径为”<<radius<<”圆的面积为:”<<p.GetArea()<<endl;
成员,必须通过对象名。
28.类的友元:友元关系提供了不同类或对象的成员函数之间、类的成员函数与一般函数之
间进行数据共享的机制。
29.友元函数:友元函数是在类中用关键字 friend 修饰的非成员函数。友元函数可以是一个
普通的函数,也可以使其他类的成员函数。虽然它不是本类的成员函数,但是在它的函数体
中可以通过对象名访问类的私有和保护成员。
Int GetTop() const {return itsTop;} Int GetLeft() const {return itsLeft;} Int GetBottom() const {return itsBottom;} Int GetRight() const {return itsRight;} Void SetTop(int top) {itsTop=top;} Void SetLeft(int left) {itsLeft=left;} Void SetBottom(int bottom) {itsBottom=bottom;} Void SetRight(int right) {itsRight=right;} Int GetArea() const; Private: Int itsTop; Int itsLeft; Int itsBottom; Int itsRight; }; Rectangle::Rectangle(int top,int left,int bottom,int right) { itsTop=top; itsLeft=left; itsBottom=bottom; itsRight=right; } Int Rectangle::GetArea() const { Int Width=itsRight-itsLeft; Int Height=itsTop-itsBottom; Return (Width*Height); } Int main() { Rectangle MyRectangle(100,20,50,80); Int Area=MyRectangle.GetArea(); Cout<<”Area:”<<Area<<endl; Return 0; }
第一章 绪论 1.结构化程序设计方法把数据和处理数据的过程分离为相互独立的实体。 2.面向对象的方法:首先,它将数据及对数据的操作方法放在一起,作为一个相互依存、不 可分离的整体——对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用 本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消 息进行通信。 3.面向对象的基本概念 ①对象 面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系 统的一个基本单位。对象由一组属性和一组行为构成。 ②类 面向对象方法中的“类”,是具有相同属性和服务的一组对象的集合。 ③封装 封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的 系统单位,并尽可能隐蔽对象的内部细节。 ④继承 特殊类的对象拥有其一般类的全部属性与服务,称做特殊类对一般类的继承。 ⑤多态性 多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的 数据类型或表现出不同的行为。 4.面向对象的软件开发 面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括面向对象的分析 (OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)面向 对象的软件维护(OOSM)等主要内容。 5.完整的程序过程 编译程序有 3 中不同类型:汇编程序、编译程序、解释程序 C++程序的开发通常要经过编辑、编译、连接、运行调试这几个步骤。 *cpp——*obj——*exe 第二章 C++简单程序设计 5.文件 iostream 中声明了程序所需要的输入和输出操作的有关信息。“using namespace”是 针对命名空间的指令。 6.C++的基本数据类型增加了 bool(布尔型),取值有 true、false。 7.预定义的插入符和提取符:“<<”是预定义的插入符,“>>是预定义提取符。 8.执行下列语句后,a,b,c 三个变量的值为多少?
a=30; b=a++; c=++a; 答案:31,30,32 9.修改下面这个程序中的错误,改正后它的运行结果是什么? ①#include<iostream> ②using namespace std; ③int main() ④int i ⑤int j; ⑥i=10; ⑦j=20; ⑧cout<<”i+j=<<i+j; ⑨return 0;} 答案:修改:③int main() 改为 int main(){; ④int i 改为 int i; 、
编写程序:
答案见课堂作业本。
第五章
26.静态数据成员:采用 static 关键字来声明为静态成员。类属性是描述类的所有对象共同特
征的一个数据项,对于任何对象实例,它的属性值是相同的。静态数据成员具有静态生存期
访问用法是“类名::标识符”。
27.静态函数成员:静态函数成员可以直接访问该类的静态数据和函数成员。而访问非静态
形式为:new 数据类型(初始化参数列表);运算符 delete 用来删除由 new 建立的对象,释
放指针所指向的内存空间。格式为:delete 指针名;
32.string 类:string 类提供了对字符串的运行处理所需要的操作。使用 string 类需要包含头
文件 string。String 类封装了串的属性并提供了一系列允许访问这些属性的函数。(自动生存
第六章 数组、指针与字符串
30、this 指针:this 指针是一个隐含于每一个类的非静态成员函数中的特殊指针(包括构造
函数和析构函数),它用于指向正在被成员函数操作的对象。this 指针明确地指出了成员函
数当前所操作的数据所需的对象。
31.动态内存分配:运算符 new 的功能是动态分配内存,或者称为动态创建堆对象,语法
24.定义并实现一个矩形类,有长、宽两个属性,由成员函数计算矩形的面积。 编写程序: #include<iostream> Using namespace std; Class Rectangle { Public: Rectangle(float len,float width)
Baidu Nhomakorabea
{ Length=len; Width=width; } ~Rectangle(){}; Float GetArea(){return Length*Width;} Float GetLength() {return Length;} Float GetWidth() {return Width;} Private: Flaot Length; Float Width; }; Void main() { Float length,width; Cout<<”请输入矩形的长度:”; Cin>>length; Cout<<”请输入矩形的宽度:”; Cin>>width; Rectangle r(length,width); Cout<<”长为”<<length<<”宽为”<<width<<”矩形的面积为:”<<r.GetArea()<<endl; }
⑧cout<<”i+j=<<i+j 改为 cout<<”i+j=”<<i+j<<endl; 运行结果为:i+j=30 第三章 函数 10.引用传递:引用是一种特殊类型的变量,可以被认为是另一个变量的别名。 11.内联函数:函数可以提高开发效率,同时也会降低程序的执行效率。内联函数不是在调 用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。 12.带默认形参值的函数:函数在定义时可以预先声明默认的形参值。有默认值的形参必须 在形参列表的最后,也就是说,在有默认值的形参右面,不能出现无默认值的形参。 13、函数重载:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译 器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。 重载函数的形参必须不同:个数不同或者类型不同。 第四章 14.抽象:面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。对一个问题的抽象应该包括两个方面:数据抽象和行为抽象。 15.封装:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也 就是将数据与操作数据的函数代码进行有机的结合,形成“类”,其中的数据和函数都是类 的成员。 16.继承:C++语言提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具 体、更详细的说明。 17.多态:多态性是指一段程序能够处理多种类型对象的能力。在 C++语言中,这种多态性 可以通过强制多态、重载多态、类型参数化多态、包含多态 4 中形式来实现。包含多态和类 形参数化多态属于一般多态性,是真正的多态性。 18.类和对象:在面向对象程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数 与数据的封装,它是对问题的抽象描述。 19.类成员的访问控制 访问控制属性可以有一下 3 种:共有类型(public)、私有类型(private)和保护类型(protected)。 除友元函数外,私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的。 保护类型成员的性质和私有成员的性质相似(类之间的访问属性相似),其差别在于继承过 程中对产生的新类影响不同。 20.在 C++中,类的对象就是该类的某一特定实体(也称实例)。 21.构造函数:构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化 为一个特定的状态。构造函数的函数名与类名相同,而且没有返回值。 22.析构函数:它是用来完成对象被删除前的一些清理工作。析构函数是在对象的生存期即 将结束的时候被自动调用的。析构函数不接收任何参数。 23.设计并测试一个名为 Rectangle 的矩形类,其属性为矩形的左下角与右上角两个点的坐标, 根据坐标能计算矩形的面积。 编写程序:
}
25.定义一个复数类 Complex,使得下面的代码能够工作。
Complex c1(3,5);
//用复数 3+5i 初始化 c1
Complex c2=4.5;
//用实数 4.5 初始化 c2
c1.add(c2);
//将 c1 与 c2 相加,结果保存在 c1 中
c2.show();
//将 c1 输出(这时的结果应该是 7.5+5i)
空间)
第七章 继承与派生
33.类的继承,是新的类从已有类那里得到已有的特性。从已有类产生新类的过程就是类的
派生。
34.原有的类成为基类或父类,产生的新类成为派生类或子类。
35.通过类的派生可以建立具有共同关键特征的对象家族,从而实现代码的重用。
25.定义一个 Circle 类,有数据成员 radius(半径),成员函数 getArea(),计算圆的面积, 构造一个 Circle 的对象进行测试。 编写程序: #include<iostream> Using namespace std; Class Circle { Public: Circle(float radius) {Radius=radius;} ~Circle() {} Float GetArea() {return 3.14*Radius*Radius;} Private: Float Radius; }; Void main() { Float radius; Cout<<”请输入圆的半径:”; Cin>>radius; Circle p(radius); Cout>>”半径为”<<radius<<”圆的面积为:”<<p.GetArea()<<endl;
成员,必须通过对象名。
28.类的友元:友元关系提供了不同类或对象的成员函数之间、类的成员函数与一般函数之
间进行数据共享的机制。
29.友元函数:友元函数是在类中用关键字 friend 修饰的非成员函数。友元函数可以是一个
普通的函数,也可以使其他类的成员函数。虽然它不是本类的成员函数,但是在它的函数体
中可以通过对象名访问类的私有和保护成员。