欢迎来到天天文库
浏览记录
ID:48265846
大小:98.51 KB
页数:7页
时间:2019-12-04
《多态程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验五多态程序设计一、实验目的:理解运算符重载的概念和实质,掌握运算符重载函数的定义方法,掌握运算符重载为类的成员函数和友元函数的方法。掌握虚函数的定义方法及其在实现多态性中的应用,理解静态连编和动态链编的区别。二、实验时间:2021/10/17三、实验地点:四、实验内容:1.已知基类:classBase{public:virtualvoidI_am(){cout<<”Base”<2、这3个对象的I_am()函数。//1.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classbase{public:base(){}virtualvoidi_am(){cout<<"iambase"<3、}voidi_am(){cout<<"iambase_y"<i_am();return0;}2.编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。//2.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;constdoublePI=3.14159264、;classgeometry{public:virtualvoidsurface()const=0;virtualvoidvolume()const=0;};classsquare:publicgeometry{private:floata,b,c;public:square(floata1,floatb1,floatc1){a=a1;b=b1;c=c1;}voidsurface()const{cout<<"该正方形的表面积为:"<<2*(a*b+b*c+c*a)<5、classcylinder:publicgeometry{private:floatr,h;public:cylinder(floatr1,floath1){r=r1;h=h1;}voidsurface()const{cout<<"该圆柱体的表面积为:"<<2*PI*r*(r+h)<6、ut<<"该球体的表面积为:"<<4*PI*r*r<surface();a[i]->volume();}return0;}3.设计字符串类String,完成以下功能:(1)使用+运算符实现两个字符串的连接功能。(2)使用=运算符实现字符串的复制功能。(7、3)使用==运算符判断两个字符串是否相等功能。(4)计算字符串长度的功能。//3.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classString{private:char*str;public:String(char*str1=""){str=newchar[strlen(str1)+1];strcpy(str,str1);}~S
2、这3个对象的I_am()函数。//1.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classbase{public:base(){}virtualvoidi_am(){cout<<"iambase"<3、}voidi_am(){cout<<"iambase_y"<i_am();return0;}2.编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。//2.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;constdoublePI=3.14159264、;classgeometry{public:virtualvoidsurface()const=0;virtualvoidvolume()const=0;};classsquare:publicgeometry{private:floata,b,c;public:square(floata1,floatb1,floatc1){a=a1;b=b1;c=c1;}voidsurface()const{cout<<"该正方形的表面积为:"<<2*(a*b+b*c+c*a)<5、classcylinder:publicgeometry{private:floatr,h;public:cylinder(floatr1,floath1){r=r1;h=h1;}voidsurface()const{cout<<"该圆柱体的表面积为:"<<2*PI*r*(r+h)<6、ut<<"该球体的表面积为:"<<4*PI*r*r<surface();a[i]->volume();}return0;}3.设计字符串类String,完成以下功能:(1)使用+运算符实现两个字符串的连接功能。(2)使用=运算符实现字符串的复制功能。(7、3)使用==运算符判断两个字符串是否相等功能。(4)计算字符串长度的功能。//3.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classString{private:char*str;public:String(char*str1=""){str=newchar[strlen(str1)+1];strcpy(str,str1);}~S
3、}voidi_am(){cout<<"iambase_y"<i_am();return0;}2.编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。//2.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;constdoublePI=3.1415926
4、;classgeometry{public:virtualvoidsurface()const=0;virtualvoidvolume()const=0;};classsquare:publicgeometry{private:floata,b,c;public:square(floata1,floatb1,floatc1){a=a1;b=b1;c=c1;}voidsurface()const{cout<<"该正方形的表面积为:"<<2*(a*b+b*c+c*a)<5、classcylinder:publicgeometry{private:floatr,h;public:cylinder(floatr1,floath1){r=r1;h=h1;}voidsurface()const{cout<<"该圆柱体的表面积为:"<<2*PI*r*(r+h)<6、ut<<"该球体的表面积为:"<<4*PI*r*r<surface();a[i]->volume();}return0;}3.设计字符串类String,完成以下功能:(1)使用+运算符实现两个字符串的连接功能。(2)使用=运算符实现字符串的复制功能。(7、3)使用==运算符判断两个字符串是否相等功能。(4)计算字符串长度的功能。//3.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classString{private:char*str;public:String(char*str1=""){str=newchar[strlen(str1)+1];strcpy(str,str1);}~S
5、classcylinder:publicgeometry{private:floatr,h;public:cylinder(floatr1,floath1){r=r1;h=h1;}voidsurface()const{cout<<"该圆柱体的表面积为:"<<2*PI*r*(r+h)<6、ut<<"该球体的表面积为:"<<4*PI*r*r<surface();a[i]->volume();}return0;}3.设计字符串类String,完成以下功能:(1)使用+运算符实现两个字符串的连接功能。(2)使用=运算符实现字符串的复制功能。(7、3)使用==运算符判断两个字符串是否相等功能。(4)计算字符串长度的功能。//3.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classString{private:char*str;public:String(char*str1=""){str=newchar[strlen(str1)+1];strcpy(str,str1);}~S
6、ut<<"该球体的表面积为:"<<4*PI*r*r<surface();a[i]->volume();}return0;}3.设计字符串类String,完成以下功能:(1)使用+运算符实现两个字符串的连接功能。(2)使用=运算符实现字符串的复制功能。(
7、3)使用==运算符判断两个字符串是否相等功能。(4)计算字符串长度的功能。//3.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#includeusingnamespacestd;classString{private:char*str;public:String(char*str1=""){str=newchar[strlen(str1)+1];strcpy(str,str1);}~S
此文档下载收益归作者所有