一、实验内容
生成表示学生的类XS,提供成员函数dispXM()、disXB() 和dispNL()分别用来表示姓名、性别、和年龄,并将他们全部定义为纯虚函数;生成CZS类表示初中学生包含数据成员xm、 xb和nl表示学生的姓名、性别和年龄,提供成员函数disXM()disXB()和disNL()分别用来显示姓名、性别和年龄;再生成类GZS表示高中生和DXS类同样包含相同的数据成员和成员函数。编写主程序,观察运行结果。
3、实训要求:
①会建造一个类。
②会创建类的对象。
③会使用类对象调用具体成员函数和数据成员完成相应功能。
④会定义和使用派生出类。
⑤编制主程序。
⑥运行主程序,观察运行结果。
二、实验目的
通过多态实训掌握多态特点,培养学生利用多态的手法来解决简单的实际问题。
三、主要仪器设备及耗材
硬件:计算机一台
软件:VC++ 6.0,MSDN2003或者以上版本
四、实验步骤
1. 创建空白新工程,向新工程中添加空文件
2. 编写代码
3. 编译、调试并运行
五、实验数据及处理结果
试验内容相关代码:
XS.H文件代码:
#include<iostream>
#include<Cstring>
using namespace std;
class XS
{
public:
virtual void dispXM()=0;
virtual void dispXB()=0;
virtual void dispNL()=0;
};
class CZS: public XS
{
public:
CZS(char *M,char *B,int N){strcpy(xm,M);strcpy(xb,B);nl=N;}
void dispXM();
void dispXB();
void dispNL();
private:
char xm[5];
char xb[6];
int nl;
};
void CZS:: dispXM()
{
cout<<”CZS:xm:”<<xm<<endl;
}
void CZS:: dispXB()
{
cout<<”CZS:xB:”<<xb<<endl;
}
void CZS:: dispNL()
{
cout<<”CZS:nl:”<<nl<<endl;
}
class GZS: public XS
{
public:
GZS(char *M,char *B,int N){strcpy(xm,M);strcpy(xb,B);nl=N;}
void dispXM();
void dispXB();
void dispNL();
private:
char xm[5];
char xb[6];
int nl;
};
void GZS:: dispXM()
{
cout<<”GZS:xm:”<<xm<<endl;
}
void GZS:: dispXB()
{
cout<<”GZS:xB:”<<xb<<endl;
}
void GZS:: dispNL()
{
cout<<”GZS:nl:”<<nl<<endl;
}
class DXS: public XS
{
public:
DXS(char *M,char *B,int N){strcpy(xm,M);strcpy(xb,B);nl=N;}
void dispXM();
void dispXB();
void dispNL();
private:
char xm[5];
char xb[6];
int nl;
};
void DXS:: dispXM()
{
cout<<”DXS:xm:”<<xm<<endl;
}
void DXS:: dispXB()
{
cout<<”DXS:xB:”<<xb<<endl;
}
void DXS:: dispNL()
{
cout<<”DXS:nl:”<<nl<<endl;
}
Main函数代码:
#include<iostream>
#include”XS.h”
using namespace std;
void fun(XS *ptr)
{
ptr->dispXM();
ptr->dispXB();
ptr->dispNL();
}
void main()
{
XS *p;
CZS c1(“Tom”,”male”,12);
p=&c1;
fun(p);
GZS g1(“lucy”,”female”,16);
p=&g1;
fun(p);
DXS d1(“lily”,”female”,20);
p=&d1;
fun(p);
}
六、思考讨论题或体会或对改进实验的建议
通过使用纯虚函数使接口统一了,CZS,GZS,DXS都可以使用fun()函数来访问,隐藏了内部的结构。
[Comment ID #188 Will Be Quoted Here]
应该不是版本的问题吧.用了有接近一个月了吧,不会就昨天晚上有问题吧….呵呵 …..搞不清怎么攻击的啊.服务器情况咱们看不到啊….呵
[Reply]
弄清楚别人怎么攻击的吗?
或许你的WP版本有BUG吧
!
[Reply]