2)利用多文件结构实现题目1),在头文件client.h中定义类,在文件client.cpp中实现该类,在文件test.cpp 中测试这个类,观察相应的成员变量取值的变化情况,要求ClientNum能够实时记录客户机对象的数量。 //Client.h: class CLIENT{ public:
CLIENT(){ClientNum++;} void showname(); static ChangServerName(); ~CLIENT(){ClientNum--;} private: static char ServerName; static int ClientNum; };
//Client.cpp:
#include\#include
char CLIENT::ServerName='m'; void CLIENT::showname(){
cout<<\已定义的客户数量为:\ }
CLIENT:: ChangServerName(){ char newName; cout<<\请输入新名字:\ cin>>newName;
ServerName=newName;
cout<<\改变后的名字为:\ ClientNum++; }
//test.cpp:
#include\#include
return 0; }
运行结果相同,只是写成了多文件形式
3)思考并回答以下概念: 类的静态数据成员,类的静态函数成员,多文件结构,文件包含。 类的静态数据成员:如果某个属性为整个类所共有,不属于任何一个具体对象,则采用static关键字来声明为静态数据成员。
类的静态函数成员:就是使用static关键字声明的函数成员,静态成员函数也属于整个类,由同一个类的所有对象共同拥有,为这些类所共享。
多文件结构:在规模较大的项目中,往往需要多个源程序文件,每个源程序文件成为一个编译单元,可以通过不同的文件实现要求。 文件包含:一个文件包含在另一个文件当中。
实验三
1) 编写一个类用于处理3×3矩阵转置,测试转置的效果,输出转置前后的矩阵。 #include
public: Matrix(int a1[3][3]) { for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { a[i][j]=a1[i][j]; } } } void change(Matrix &m1); void output(); private: int a[3][3]; };
void Matrix::change(Matrix &m1) { for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { m1.a[j][i]=a[i][j];
} } }
void Matrix::output() { for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { cout<
void main() { }
cout<<\原来的矩阵是:\int a[3][3]={1,2,3,4,5,6,7,8,9},b[3][3]; Matrix m(a); Matrix m1(b); m.output(); cout< cout<<\转置后的矩阵为:\m.change(m1); m1.output(); //2) 定义一个具有构造函数和析构函数的类,如实验一的CPU类,定义一个CPU的对象数组,观察构造函数的析构函数的调用过程。 #include enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private: CPU_Rank rank; int frequency; float voltage; public: CPU(int newrank,int newfrequency,float newvoltage); void run(); void stop(); ~CPU(){cout<<\成功调用析构函数\}; void CPU::run() { cout<<\程序开始执行\ } void CPU::stop() { cout<<\程序结束\} CPU::CPU(int newrank,int newfrequency,float newvoltage) { rank=(CPU_Rank)newrank; frequency=newfrequency; voltage=newvoltage; cout<<\成功调用构造函数\cout<<\等级:\cout<<\频率:\cout<<\电压:\} int main() { CPU c1(2,60,220); CPU c[2]; for(int i=0;i<2;i++) { c[i].run(); c[i].stop(); } cout<<\成功运用对象数组\ return 0; } 3)利用动态内存分配的方式重新完成题目2)。 #include enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7}; class CPU { public : CPU(int r){cout< cout<<\第\次调用构造函数\ i++; } void run(); void stop(); ~CPU() { static int i=1; cout<<\第\次调用构造函数\ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c++实验报告(3)在线全文阅读。
相关推荐: