LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 566|回复: 4

急求助

[复制链接]
发表于 2004-5-9 13:22:59 | 显示全部楼层 |阅读模式
:help :help
哪位大虾给小弟一点提示吧,shape类的指针,软件“复用”技术是什么意思?
===================================
现有如下的main()函数,成员函数的功能见说明。请用面向对象的软件“复用”技术设计并定义Shape、Point、Triangle、Rectangle、Cubic,致使能正确运行如下的main()函数。说明:
函数getTypeName()  的功能是输出pS所指向的对象的类型名;
函数pS->getValue() 的功能是输出pS指向的对象的数据成员值;               
函数pS->calArea()  的功能是计算并输出pS指向的对象的面积;
函数pS->calVolume() 的功能是计算并输出pS指向的对象的体积。                          

void main()
{  Shape* pS = NULL;                         //定义Shape类的指针pS
//创建4个点(2个数据分别为x,y的坐标值):
Point p1(0,0),p2(100,0),p3(100,50),p4(0,50);
Triangle t1(p1,p2,p3);                    //用3点创建一个三角形对象
Rectangle r1(p1,p2,p3,p4);                //用4点创建一个矩形对象
int h=100 ;
Cubic c1(p1,p2,p3,p4,h);                  //创建一个立方体对象,h为高
pS = &p1;                                 //指针pS指向Point的对象p1                     
pS->getTypeName();                         
pS->getValue();                                           
pS = &t1;                                   
pS->getTypeName();                          
pS->getValue();                                           
pS->calArea();                             
pS->calVolume();                                                     
pS = &r1;                                   
pS->getTypeName();                          
pS->getValue();                           
pS->calArea();
pS->calVolume();                           
pS = &c1;                                   
pS->getTypeName();                          
pS->getValue();                           
pS->calArea();
pS->calVolume();                           
}
//注意:输出结果必须可理解。
发表于 2004-5-9 15:49:46 | 显示全部楼层
这不是上贴出的考试题吗?就这道题目还算简单。我还以为你能自己做呢。
 楼主| 发表于 2004-5-10 15:55:47 | 显示全部楼层
老大,实话实说,我刚开始学C++呢,就给点提示吧,多谢了
发表于 2004-5-10 16:23:18 | 显示全部楼层
Shape类是一个抽象类,只起接口作用. 其它的类都是Shape的派生类.
Shape类中的四个方法getTypeName(), getValue(), getValue(), calVolume()都是纯虚函数. 具体的实现在派生类中.
实现软件"复用"就是保证一件事情只在一个地方做一次. 不要重复在多个地方做相同的事,  这样能有效加快软件开发进度, 代码也好维护.
比如说Cubic c1(p1,p2,p3,p4,h), 很明显, 你可以自己去定义立方体的底面四边形的四个顶点, 然后再计算面积, 但题目中已经有了一个Rectangle r1(p1,p2,p3,p4)的定义了, 完全可以把一个Rectangle作为自己的成员, 就不需要自己再写一次计算面积的代码了.
发表于 2004-5-10 16:26:01 | 显示全部楼层
好好看书
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表