南昌航空大学实验报告 201 1年 11月 29日课程名称: 面向对象程序设计 B实验名称: 动态链接库的制作与应用班级: 10201513 姓名: 祝小夏同组人: 指导教师评定: 签名: 一、实验目的综合运用所学面向对象编程知识完成动态链接库文件的创建、调用, 理解动态链接库的工作原理, 体会声明和定义分开方法在程序设计中的优势, 掌握利用动态链接库实现不同开发平台间混合编程的方法, 掌握利用动态链接库实现代码可复用技术, 进一步掌握混合开发的方法。二、实验内容综合应用所学面向对象编程知识定义一个多项式矩阵类并应用该类实现多项式矩阵类的运算。具体实现该矩阵的加法( 采用运算符“+”重载)、转置( 采用运算符“-”重载) 及输出(采用运算符“<< ”重载) 操作。将该类制作为动态链接库, 然后在其他工程中对该动态链接库进行调用。三、概要设计首先我们做一个动态链接库提供 add 函数接口的方法,在 VC++ 中 new 一个 Win32Dynamic-Link Library 工程 Matrix 。在建立的工程中添加 matrix .h及 matrix .cpp 文件.。这两个文件建立结束后,执行“ build ”命令完成动态链接库的编译与生成,此时,在该工程目录下的“ debug ”目录下则会生成 matrix .dll 和 matrix .lib。文件然后, 我们也建立一个与 Matrix 工程处于同一工作区的应用工程 zMatrix , 将刚刚生成的两个文件拷贝到该共分成目录下。在新建文件,对刚生成的两个文件进行调用。四、详细设计核心代码: #include<> class Matrix{ private: int i,j; int *m; public: Matrix(int a,int b); void set(); Matrix &operator +(Matrix &); Matrix &operator -(); __declspec(dllexport) friend ostream &operator<<(ostream &out,Matrix &s); } Matrix::Matrix(int a,int b) { i=a; j=b; m=new int[i*j]; for(int k=0;k<i;k++) for(int l=0;l<j;l++) m[k*j+1]=0; } void matrix::set() { cout<<"please input the data of Matrix"<<endl; for(int k=0;k<i;k++) for(int l=0;l<j;l++) cin>>m[k*j+1]; } Matrix & Matrix::operator +(Matrix &s) { Matrix n(,); for(int k=0;k<;k++) for(int l=0;l<s;l++) [k*j+1]=m[k*j+1]+[k*j+1]; return n; } Matrix & Matrix::operator _() { Matrix n(j,i); for(int k=0;k<j;k++) for(int l=0;l<i;l++) [k*i+1]
第七次实验报告 来自淘豆网www.taodocs.com转载请标明出处.