4) 定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类,为以上的类编写构造和析构函数,观察组合类和内嵌类的构造函数和析构函数的调用顺序。
#include
enumCPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
class CPU{ //CPU类的定义 public: //外部接口 CPU (int i) { cpu=i; cout<<\成功调用CPU构造函数\ } ~CPU(){cout<<\成功调用CPU析构函数\ private: float cpu; };
class RAM{ //CPU类的定义 public: //外部接口 RAM (int i) { ram=i; cout<<\成功调用RAM构造函数\ } ~RAM(){cout<<\成功调用RAM析构函数\ private: float ram; };
class CDROM{ //CPU类的定义 public: //外部接口
注:实验成绩分为(90——100分)优,(80——89分)良,(70——79)中,(60——69分)及格,(59分)不及格。
CDROM (int i) { cdrom=i; cout<<\成功调用CDROM构造函数\ } ~CDROM(){cout<<\成功调用CDROM析构函数\ private: float cdrom; };
class Computer{ //CPU类的定义 public: //外部接口 Computer(CPU Ncpu,RAMNram,CDROMNcdrom); void run(); void stop(); ~Computer(){cout<<\成功调用Computer析构函数\ private: CPU cpu;RAMram;CDROMcdrom; };
Computer::Computer(CPU
Ncpu,RAMNram,CDROMNcdrom):cpu(Ncpu),ram(Nram),cdrom(Ncdrom) { cpu=Ncpu; ram=Nram; cdrom=Ncdrom; cout<<\}
void Computer::run() { cout<<\程序开始执行\}
void Computer::stop() { cout<<\程序停止执行\}
int main() { inti,j,k; cin>>i>>j>>k; CPU a(i); RAM b(j); CDROM c(k); Computer com(a,b,c); com.run(); com.stop(); return 0; }
注:实验成绩分为(90——100分)优,(80——89分)良,(70——79)中,(60——69分)及格,(59分)不及格。
5) 为题目2)的类编写复制构造函数,在主函数中利用复制构造的方式创建新的对象,观察对象的状态。
#include
FIDDLE::FIDDLE(FIDDLE &f)
注:实验成绩分为(90——100分)优,(80——89分)良,(70——79)中,(60——69分)及格,(59分)不及格。
{ x=f.x; y=f.y; cout<<\}
void fiddle(inta,int&b) { a=a+100; b=b=100; cout<<\ cout<
注:实验成绩分为(90——100分)优,(80——89分)良,(70——79)中,(60——69分)及格,(59分)不及格。
6) 思考并回答以下概念:函数重载,引用,类,对象,数据成员,函数成员,访问属性,构造函数,析构函数,类的组合,内嵌对象,初始化列表,复制构造函数。
函数重载:两个以上的函数,具有相同的函数名,但是形参个数或类型不同,编译器根据实
参和形参的类型和个数的最佳匹配,自动确定调用哪个函数
引用:是一种特殊类型的变量,可以被认为是另一个变量的别名 类:是对逻辑上相关的函数与数据的封装,是对问题的抽象描述 对象:该类的某一特定实体 数据成员:类中直接定义的变量 函数成员:类中直接定义的函数
访问属性:私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的 构造函数:在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态 析构函数:完成对象被删除前的一些清理工作
类的组合:一个类内嵌其他类的对象作为成员的情况,是一种包含与被包含的关系 内嵌对象:内嵌类的对象
初始化列表:对所有内嵌对象进行初始化
复制构造函数:使用一个已经存在的对象,去初始化同类的一个新对象
实验二 C++程序的结构 ( 设计性实验 2学时)
1. 目的要求:
1) 观察程序运行中变量的作用域、生存期和可见性; 2) 学习类的静态成员的使用;
3) 学习多文件结构在C++程序中的使用。
2. 实验内容:
7) 实现客户机(CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。
#include
class CLIENT{
注:实验成绩分为(90——100分)优,(80——89分)良,(70——79)中,(60——69分)及格,(59分)不及格。