C++实验报告 第四章 类与对象
C#实验四类与对象

实训五、在C#中实现面向对象编程一、实训目的:通过本章的学习,主要把握以下内容:•理解C# 的类和对象•使用C# 构造函数和析构函数•使用C# 访问修饰符•使用方法•在C#中使用方法的重写•理解属性及其不同的类型、实现•理解和使用索引器三、实验目的与要求(1)加深理解面向对象编程的概念,如类、对象、实例化等;(2)熟悉掌握类的声明格式,特别是类的成员定义、构造函数、初始化对象等。
(3)数量掌握方法的声明,理解并学会使用方法的参数传递,方法的重载等。
四、实训内容:(1)定义一个描述学生基本情况的类,数据成员包括姓名,学号,C#、英语和数学成绩。
成员函数包括输出数据、置姓名和学号、置三门课的成绩,求出总成绩和平均成绩。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ClassStudent{class Program{class Student{public string Sname;public string Sno;public int Csharp;public int English;public int Math;public void display(){Console.WriteLine("大䨮家¨°好?!ê?我¨°是º? {0}分¤? ,ê?学¡ì号?是º? {1} ,ê?我¨°的Ì?C#成¨¦绩¡§ {2}分¤? 我¨°的Ì?英®¡é语®?成¨¦绩¡§ {3}分¤? 我¨°的Ì?数ºy学¡ì成¨¦绩¡§ {4}分¤? ", this.Sname, this.Sno, this.Csharp, this.English, this.Math);//this.我¨°自Á?己o的Ì?****}public void GiveSname(string name){this.Sname = name;}public void GiveSno(string Sno){this.Sno = Sno;}public void GiveCsharp(int Csharp){this.Csharp = Csharp;}public void GiveEnglish(int English){this.English = English;}public void GiveMath(int Math){this.Math = Math;}public double Avg(int c, int e, int m){double avg = (c + e + m) / 3.0;return avg;}public double Count(int c, int e, int m){double con = (c + e + m);return con;}}static void Main(string[] args){double a, c;Student s = new Student();Console.WriteLine("姓?名?:êo");String Sname = Console.ReadLine();s.GiveSname(Sname);Console.WriteLine("学¡ì号?:êo");String Sno = Console.ReadLine();s.GiveSno(Sno);Console.WriteLine("C#成¨¦绩¡§:êo");int Csharp = Convert.ToInt16(Console.ReadLine());s.GiveCsharp(Csharp);Console.WriteLine("英®¡é语®?成¨¦绩¡§:êo");int English = Convert.ToInt16(Console.ReadLine());s.GiveEnglish(English);Console.WriteLine("数ºy学¡ì成¨¦绩¡§:êo");int Math = Convert.ToInt16(Console.ReadLine());s.GiveMath(Math);s.display();Console.WriteLine("我¨°的Ì?平?均¨´分¤?是º? {0}分¤? ,ê?我¨°的Ì?总Á¨¹分¤?是º? {1}分¤? ", a = s.Avg(Csharp, English, Math), c = s.Count(Csharp, English, Math));}}}(2)定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入输出的成员函数。
C++语言程序设计实验4(类和对象)

是:用初始对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。
构造函数和拷贝构造函数的声明格式如下:
class 类名
{
public: 类名(形参); 类名(类名 &对象名);
//构造函数 //拷贝构造函数
... ...
}; 类名::类名()
//构造函数的实现
{ 函数体;
} 类名::类名(类名 &对象名)
6. 本章小结
本章主要介绍了面向对象的基本概念、类和对象的声明、构造函数、析构函数、内联成 员函数、拷贝构造函数、类的组合。
类是面向对象程序设计中最重要、最基本的概念,也是学习面向对象方法时遇到的第 1 个难点。类是对逻辑上相关的函数和数据的封装,是对问题的抽象描述。
要理解类与对象,必须要结合实例来学习,读者可以思考:除了书中列出的例子,现实 世 界 中 还 有 哪 些 有 形 或 无 形 的 事 务 可 以 被 抽 象 为 程 序 中 的 类 ,每 个 类 又 存 在 哪 些 对 象( 实 体 )。 这样可以对类的概念了解的快一些。
本章开始的每章的最后有一个实例——人员信息管理程序,这个例子贯穿后续各章,利 用每章介绍的只是不断丰富程序的功能,建议课后仔细阅读、体会,并尝试修改、补充程序 的功能。
另外,本章中还介绍了利用 UML 语言表示类与对象的方法,以后各章还将进一步介绍 用 UML 语言表示类之间的关系,但这远不是 UML 语言的全部,这方面的内容也不是初学者 学习的重点,读者可以不必深究,了解一下就可以了。如果有需要,可以另外学习软件工程 的课程。
面向对象的程序设计目的是:实现软件设计的产业化。主要观点是认为自然界是由实体 (对象)所组成。程序设计的出发点是:使用面向对象的观点来描述模仿并处理现实问题。 他要求:高度概括、分类、抽象。
C 类和对象实验报告

C 类和对象实验报告C++类和对象实验报告引言:C++是一种面向对象的编程语言,它提供了类和对象的概念,使得程序的设计和实现更加模块化和可重用。
本实验旨在通过实际编程操作,深入理解C++中类和对象的概念,并掌握其基本用法。
实验目的:1. 理解类和对象的概念;2. 掌握类的定义和对象的创建方法;3. 熟悉类的成员变量和成员函数的使用;4. 学会通过对象调用成员函数实现数据的封装和操作。
实验内容:1. 类的定义和对象的创建在C++中,通过关键字class可以定义一个类。
类定义了一种数据类型,它包含了数据成员和成员函数。
我们可以通过类来创建对象,即类的实例化。
例如,我们可以定义一个类Person,其中包含姓名和年龄两个数据成员,以及一个显示个人信息的成员函数。
然后通过Person类来创建多个对象,每个对象都有自己的姓名和年龄。
2. 成员变量和成员函数的使用类的成员变量是类的数据成员,用于存储对象的状态信息。
成员函数是类的操作成员,用于实现对对象的操作和功能。
在类的成员函数中,可以通过this指针来访问对象的成员变量和成员函数。
this指针指向当前对象的地址,可以用于区分不同对象的成员变量和成员函数。
例如,在Person类的成员函数中,可以通过this指针来访问当前对象的姓名和年龄。
3. 数据的封装和操作类的一个重要特性是数据的封装,即将数据和操作数据的函数封装在一起,形成一个完整的类。
通过对象调用成员函数,可以实现对数据的操作。
例如,在Person类中,我们可以定义一个设置姓名的成员函数set_name()和一个获取姓名的成员函数get_name()。
通过对象调用这两个成员函数,可以设置和获取对象的姓名。
实验结果:通过实验,我们成功定义了一个Person类,并创建了多个Person对象。
通过对象调用成员函数,实现了对对象的操作和数据的封装。
通过实验,我们深入理解了C++中类和对象的概念,掌握了类的定义和对象的创建方法,熟悉了类的成员变量和成员函数的使用,学会了通过对象调用成员函数实现数据的封装和操作。
实验4(类与对象)

void Increment(); //给原值加1
void Decrement(); //给原值减1
int GetValue(); //获取计算结果
void Print(); //输出计算结果
};
*10、定义一个字符串处理类CString,此类具有两个数据成员:字符串的内容(contents)和长度(length),并实现字符串的一系列操作,如显示字符串、计算字符串的长度、给现有字符串后添加字符串、给字符串赋值、查找字符窜中字符和子串等功能。
}
void main()
{
time_t x;
x=time(NULL);
time_data ob(x);
ob.show();
return;
}
9、下面是一个计算器类的定义,请完成该类的实现,并在主函数中实现18、19、20等的加1;减1;显示计算结果。
class Counter{
int value;
public:
class time_data
{
private:
time_t systime;
public:
time_data(time_t t);
void show();
};
time_data::time_data(time_t t)
{
systime=t;
}
void time_data::show()
{
cout<<ctime(&systime)<<endl;
{
cout<<"Price="<<Price<<" "<<"Count"<<Count<<" Total="<<Total<<endl;
类与对象的实验报告

类与对象的实验报告类与对象的实验报告引言:在计算机科学领域,类与对象是面向对象编程(Object-Oriented Programming,简称OOP)的核心概念之一。
类是一种抽象的数据类型,用于描述具有相同属性和行为的对象集合。
对象则是类的实例,具体化了类的属性和行为。
本实验旨在通过编写一个简单的类与对象的程序,深入理解类与对象的概念及其在编程中的应用。
实验过程:1. 定义一个类:在这个实验中,我们以动物为例,定义了一个名为Animal的类。
该类具有以下属性和行为:- 属性:名称、年龄、种类- 行为:吃、睡、叫2. 创建对象:在主程序中,我们创建了两个Animal对象,分别代表一只狗和一只猫。
通过调用构造函数,为对象的属性赋值。
3. 调用对象的方法:我们通过调用对象的方法,模拟了动物的行为。
例如,我们调用了eat()方法,让动物吃东西;调用了sleep()方法,让动物睡觉;调用了make_sound()方法,让动物发出叫声。
4. 修改对象属性:我们还演示了如何修改对象的属性。
通过调用set_age()方法,我们改变了动物的年龄;通过调用set_type()方法,我们改变了动物的种类。
实验结果:通过运行程序,我们观察到以下结果:- 狗的名称是"旺财",年龄是3岁,种类是"狗"。
狗吃骨头,睡觉时打呼噜,发出汪汪的叫声。
- 猫的名称是"咪咪",年龄是2岁,种类是"猫"。
猫吃鱼,睡觉时打呼噜,发出喵喵的叫声。
- 经过修改后,狗的年龄变为5岁,种类变为"藏獒";猫的年龄变为3岁,种类变为"波斯猫"。
讨论与分析:通过这个实验,我们深入理解了类与对象的概念及其在编程中的应用。
类是一种抽象的模板,用于描述具有相似属性和行为的对象集合。
对象是类的实例,具体化了类的属性和行为。
通过定义类和创建对象,我们可以更好地组织和管理程序的代码。
C实验报告第四章类与对象

C++实验报告实验4 类与对象一、实验目的1、掌握类的声明和使用2、掌握类的声明和对象的声明3、复习具有不同访问属性的成员的访问方式4、观察构造函数和析构函数的执行过程5、学习类的组合使用方法6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序二、实验任务1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。
其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。
观察构造函数好析构函数的调用顺序。
2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。
cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
3、设计一个用于人事管理的People类。
考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。
其中出生日期声明为一个日期类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。
三、实验内容任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。
初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。
在用debug单步调试后,明白其中道理。
源程序:b.c.d.3、执行对象的run()和stop()4、调用析构函数所遇问题:1、枚举类型的定义不知如何书写,不能准确理解枚举的意义,从而,导致开始便出现错误。
2、创建带参数的对象则调用带参数的构造函数,结果清晰明了,不用刻意添加默认构造函数。
类与对象实验报告

类与对象实验报告类与对象实验报告引言:类与对象是面向对象编程的基本概念,通过定义类和创建对象,可以实现对数据和行为的封装,使程序更加模块化和可扩展。
本实验旨在通过实际操作,加深对类与对象的理解,并掌握其基本用法。
实验过程:1. 定义类:在实验开始前,我们首先需要定义一个类。
类是对象的抽象描述,包含了对象的属性和方法。
以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。
2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。
通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。
例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。
3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。
例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。
这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。
4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。
通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。
例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。
实验结果:通过实验,我们深入了解了类与对象的概念和用法。
通过定义类和创建对象,我们可以更好地组织和管理代码,提高程序的可维护性和可扩展性。
通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。
通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。
实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。
通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。
在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。
类和对象实验报告

类和对象实验报告类和对象实验报告引言:在计算机科学领域中,类和对象是面向对象编程的基本概念。
通过类和对象的使用,可以将现实世界中的事物抽象为计算机程序中的实体,从而更好地描述和处理问题。
本实验将通过一个简单的示例来介绍类和对象的基本概念,并展示它们在实际编程中的应用。
实验目的:1. 理解类和对象的概念;2. 学会创建类和对象,并进行基本的操作;3. 掌握类和对象在程序中的应用。
实验过程:1. 定义一个类:首先,我们需要定义一个类来表示一个学生。
一个学生通常有姓名、年龄和成绩等属性。
我们可以使用Python语言来定义这个类,如下所示:```pythonclass Student:def __init__(self, name, age, score): = nameself.age = ageself.score = score```在上述代码中,我们使用了Python中的类和构造函数的概念。
`__init__`方法是类的构造函数,用于初始化类的属性。
`self`表示类的实例对象本身。
2. 创建对象:在类定义完成后,我们可以创建类的对象。
通过创建对象,我们可以访问和操作类的属性和方法。
下面是创建一个学生对象的示例代码:```pythonstudent1 = Student("张三", 18, 90)```在上述代码中,我们使用`Student`类的构造函数创建了一个名为`student1`的学生对象。
通过传入相应的参数,我们可以为学生对象的属性赋值。
3. 访问对象的属性和方法:一旦对象创建成功,我们就可以通过对象来访问和操作类的属性和方法。
下面是一些访问对象属性和方法的示例代码:```pythonprint() # 输出学生的姓名print(student1.age) # 输出学生的年龄print(student1.score) # 输出学生的成绩def study(self):print(f"{}正在学习")student1.study() # 调用学生对象的study方法```在上述代码中,我们通过对象的名称和点操作符来访问对象的属性和方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++实验报告实验4 类与对象一、实验目的1、掌握类的声明和使用2、掌握类的声明和对象的声明3、复习具有不同访问属性的成员的访问方式4、观察构造函数和析构函数的执行过程5、学习类的组合使用方法6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序二、实验任务1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。
其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。
观察构造函数好析构函数的调用顺序。
2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。
cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
3、设计一个用于人事管理的People类。
考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。
其中出生日期声明为一个日期类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。
三、实验内容任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。
初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。
在用debug单步调试后,明白其中道理。
源程序://Lab4_1.cpp#include<iostream>using namespace std;enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};class CPU { //CPU类的定义private: //私有数据成员CPU_Rank rank;int frequency;float voltage;public: //外部接口CPU(CPU_Rank r,int f,float v) { //CPU类的构造函数rank=r;frequency=f;voltage=v;cout<<"构造了一个CPU!"<<endl;}~CPU() { //CPU类的析构函数cout<<"析构了一个CPU!"<<endl;}void run(){cout<<"CPU开始运行"<<endl;}void stop(){cout<<"CPU停止运行"<<endl;}};//主函数int main(){CPU a(P6,300,2.0); //建立CPU类的对象a.run();a.stop();return 0;}实验结果:从debug调试中可知,在创建类的对象时,首先调用其构造函数,之后,在其他成员函数调用结束后,对象的生存期结束,系统便自动调用析构函数,进行析构。
DEBUG调试;1、程序准备执行CPU类的构造函数2、执行构造函数的过程a.b.c.d.3、执行对象的run()和stop()4、调用析构函数所遇问题:1、枚举类型的定义不知如何书写,不能准确理解枚举的意义,从而,导致开始便出现错误。
2、创建带参数的对象则调用带参数的构造函数,结果清晰明了,不用刻意添加默认构造函数。
任务2:此例主要考察对类的组合的应用同理解。
在Lab4-1的基础上,进行类的组合的编写,特别要注意的是组合类构造函数的实现!在实验中,开始并没有认真理解清楚组合类构造函数的定义,导致运行出错,在请教老师和同学后,发现是构造函数的调用出现问题,之后经过改正,最终程序能够成功运行。
源程序://Lab4_2.cpp#include<iostream>using namespace std;enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};class CPU { //CPU类定义private:CPU_Rank rank;int frequency;float voltage;public:CPU(CPU_Rank r,int f,float v){ //CPU类的构造函数rank=r;frequency=f;voltage=v;cout<<"构造了一个CPU!"<<endl;}CPU(CPU &CPU1){ //CPU类的复制构造函数cout<<"使用复制构造函数构造了一个CPU!"<<endl;} ~CPU() { //CPU类的析构函数cout<<"析构了一个CPU!"<<endl;}};class RAM{ //RAM类定义private:int ram;public:RAM(int r) { //RAM类的构造函数ram=r;cout<<"构造了一个RAM!"<<endl;}RAM(RAM &RAM1){ //RAM类的复制构造函数cout<<"使用复制构造函数构造了一个RAM!"<<endl;} ~RAM() { //RAM类的析构函数cout<<"析构了一个RAM!"<<endl;}};class CDROM{ //CDROM类定义private:int cdrom;public:CDROM(int c) { //CDROM类的构造函数cdrom=c;cout<<"构造了一个CDROM!"<<endl;}CDROM(CDROM &CDROM1){ //CDROM类的复制构造函数cout<<"使用复制构造函数构造了一个CDROM!"<<endl;} ~CDROM() { //CDROM的析构函数cout<<"析构了一个CDROM!"<<endl;}};//类的组合class COMPUTER{ //COMPUTER类的定义private://私有数据成员CPU A; //CPU类的对象ARAM B; //RAM类的对象BCDROM C; //CDROM类的对象Cpublic://外部接口COMPUTER(CPU cpu,RAM ram,CDROM cdrom); //组合类的构造函数~COMPUTER() {cout<<"析构了一个COMPUTER!"<<endl;} //组合类的析构函数void run(){cout<<"COMPUTER开始运行"<<endl;}void stop(){cout<<"COMPUTER停止运行"<<endl;}};//组合类的构造函数的实现COMPUTER::COMPUTER(CPU cpu,RAM ram,CDROM cdrom):A(cpu),B(ram),C(cdrom){cout<<"构造了一个COMPUTER!"<<endl;}//主函数int main(){CPU a(P6,300,2.0); //建立CPU类的对象RAM b(1); //建立RAM类的对象CDROM c(2); //建立CDROM类的对象COMPUTER Computer(a,b,c); //建立COMPUTER类的对象Computer.run();Computer.stop();return 0;}实验结果:由最终的结果可以知道,创建对象时调用构造函数,当对象的生存期结束时,系统将自动调用相应的析构函数,但是,析构函数和构造函数的调用次序恰好相反,因此,最终会出现如图所示结果。
调试过程:1.创建CPU、RAM、CDROM类的对象,依次调用其构造函数2.创建组合类COMPUTER的对象,调用组合类复制构造函数,(注意:其中首先调用CDROM的复制构造函数),同时,创建完成后,立刻析构3.组合类的对象构造结束,并且到达其生存期末时,调用析构函数所遇问题:1、未编写复制构造函数,当创建组合类对象时,调用默认构造函数,因而在DOS 界面不显示复制函数的构造过程。
2、当进行调用复制构造函数时,系统先对初始化列表中位于后方的参数进行赋值,因此,先输出“使用构造函数构造了一个CDROM”。
3、析构函数执行过程恰与构造过程相反,同时,析构函数调用的次数和构造函数的调用次数正好相对应,均为10次。
任务3:考察构造函数和析构函数、拷贝构造函数、内联成员函数和组合类的应用。
首先声明一个Date类,然后创建Date类的对象birthday,同时,birthday 也是People类的私有数据成员之一,运用组合类的概念,实现最终的程序运行。
源程序://Lab4_3.cpp#include<iostream>#include<string>using namespace std;class Date{ //Date类的定义private://私有数据成员int year;int month;int day;public://外部接口Date(){}Date(int y,int m,int d){ //Date的构造函数year=y;month=m;day=d;}Date(Date &birthday){ //Date的复制构造函数的实现year=birthday.year;month=birthday.month;day=birthday.day;}void set() { //设置数据函数cin>>year>>month>>day;}void show() //显示函数{cout<<year<<"年"<<month<<"月"<<day<<"日";}};//类的组合class People{ //People类定义private://私有数据成员int number;string sex;int id;Date birthday; //Date类的对象public://外部接口People(){}People(int n,string s,int i,Date b);void input() { //输入函数cout<<"录入数据:"<<endl;cout<<"编号:";cin>>number;cout<<"性别(m男/f女):";cin>>sex;cout<<"生日:";birthday.set();cout<<"身份证号:";cin>>id;}void output(){ //输出函数cout<<"编号:"<<number<<endl;cout<<"性别:"<<sex<<endl;cout<<"生日:";birthday.show();cout<<endl;cout<<"身份证号:"<<id<<endl;}~People(){ //Pople类析构函数cout<<" "<<number<<"号人员已经录入"<<endl;}};People::People(int n,string s,int i,Date b):number(n),sex(s),id(i),birthday(b){} //People组合类构造函数//主函数int main(){People P1; //无需加括号"People P()"为错误写法!P1.input();P1.output();return 0;}实验结果:Debug调试过程:1、由于构造函数的函数体部分均为空,故调用时无显示,直至调用对象的input()函数,DOS显示如下2、执行output()函数,输出信息,同时,最终调用析构函数遇到的问题:1、未声明类的默认构造函数,当需要调用无参数的构造函数时,运行出错;2、由于参数的问题,主函数中的对象是无参数的,也不需要加括号。