class-急求,c++形状类的周长和面积 用虚函数写

问题描述

急求,c++形状类的周长和面积 用虚函数写

//1.定义形状类Shape,使其包含两个私有数据成员:float perimeter; float area;
//2.定义三角形类Triangle,从Shape继承,并包含三个私有数据成员:float edge1; float edge2; float edge3;定义两个共有成员函数:float CalcPeri(); float CalcArea();
//3.定义矩形类Rectangle,从Shape继承,并包含两个私有数据成员:float width; float height; 定义两个共有成员函数:float CalcPeri(); float CalcArea();
//4.设计一个全局函数:float AddShape(Shape *s[ ], int n)用于实现n个指定形状(可以是三角形、矩形或兼而有之)的面积之和。
//5.在main函数中对上述设计进行测试。

#include
#include
using namespace std;
//定义形状类
class Shape{
public:
Shape(float p=0,float a=0)
{
perimeter=p;
area=a;
}
virtual float area()=0;
virtual float perimeter()=0;
void sDisplay()
{
cout<<"周长是:"<
cout
}
pravite:
float perimeter;
float area;
};
//定义三角形类
class Triangle:public Shape{
public:
Triangle(float a,float b,float c)
{
edge1=a;
edge2=b;
edge3=c;
}
void tDisplay(){
cout
}
float CalcPeri(){
float p;
return p=edge1+edge2+edge3;
}
float CalcArea(){
float m=(edge1+edge2+edge3)/2;
return sqrt(m*(m-edge1)*(m-edge2)*(m-edge3));
}
private:
float edge1;
float edge2;
float edge3;
};
//定义长方形类
class Rectangle:public Shape{
public:
Rectangle(float width,float height)
{
width=w;
height=h;
}
void rDisplay()
{
cout
}
float CalcPeri()
{
return (width+height)*2;
}
float CalcArea()
{
return width*height;
}
private:
float width;
float height;
};
//定义多边形
float AddShape(Shape *s[],int n)
{
int p,q;
for(int i=0;i
{
p=s[i]->perimeter()+p;
q=s[i]->area()+q;
}
cout<<"多边形的周长是:"<

cout
return 0;
}
int main()
{Triangle tri1(4,5,6);
Triangle tri2(3,4,5);
Rectangle rect(8,9);
Shape *s[]={&tri1,&tri2,rect};
for (int i=0;i
{coutarea()<
coutperimeter()<<endl;
}

}

解决方案

http://blog.chinaunix.net/uid-20465760-id-1944082.html
关于虚函数的介绍,还有你到底要问什么?

解决方案二:

我想问我该怎么改,不太明白

解决方案三:

http://blog.chinaunix.net/uid-20465760-id-1944082.html
关于虚函数的介绍,还有你到底要问什么?

时间: 2024-09-21 10:19:04

class-急求,c++形状类的周长和面积 用虚函数写的相关文章

C++实践参考——形状类族的中的纯虚函数

返回:贺老师课程教学链接  项目要求 [项目-形状类族的中的纯虚函数]写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用如下的main()函数,求出定义的几个几何体的面积和.  int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r

C++第14周项目2 - 形状类族的中的纯虚函数

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8987478 [项目2]写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用如下的main()函数,求出定义的几个几何体的面积和.  int main() { Circle c

静态联编,动态联编,类指针之间的关系,虚函数与多态性,纯虚函数,虚析构函数

1.静态联编,是程序的匹配,连接在编译阶段实现,也称为早期匹配.重载函数使用静态联编. 2.动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编.switch语句和if语句是动态联编的例子. #include<iostream> void go(int num) { } void go(char *str) { } //class //::在一个类中 class A { public: void go(int num) { } void go(char *str) { } }; void

急求连接数据库接口类

问题描述 各位老师们```能否共享一下?~~~~~~数据库接口类``` 解决方案 解决方案二:既是接口,也是类?IConnection,ICommand?

eclipse-android post json 数据失败 急求啊!!!!!

问题描述 android post json 数据失败 急求啊!!!!! 5C 用eclipse java写了一个post方法可以post成功,但是用android 用同样的方法上传失败,搞了两三天了,急求啊!!!!!!post 方法public static void appadd(String weburlString json) { try { //鍒涘缓杩炴帴 URL url = new URL(weburl); HttpURLConnection connection = (HttpU

c语言-急求!简单计算器代码!

问题描述 急求!简单计算器代码! 请问用逆波兰函数和栈写计算器代码怎么写啊?能不能顺便注上解释,非常感谢! 解决方案 http://blog.csdn.net/roma823/article/details/6530066 给你一个链接,希望对你有用,里面是一个逆波兰计算器(C语言). 望采纳

node问题-node.js的函数问题 急求

问题描述 node.js的函数问题 急求 function add(domanName,name,email,age,click){ var website=[]; website[0]=domainName; website[1]=name; website[2]=email; website[3]=age; website[4]=click; return website; } 急求这句话是什么意思呢? 是不是函数返回的结果,返回到数组里?这样函数add 的结果就跟数组建立了联系? 解决方案

为什么基类的析构函数不是虚函数时,就不会调用派生类的析构函数

问题描述 为什么基类的析构函数不是虚函数时,就不会调用派生类的析构函数 我知道,基类的析构函数要生命为虚函数,不然用基类指针删除派生类对象时只会调用基类的析构函数,而不会调用派生类的析构函数,从而发生内存泄露.但是为什么会这样?为什么基类析构函数不是虚函数时,就不会调用派生类析构函数而是虚函数时就会调用派生类析构函数???有没有大神指点一下. 看了几位的回答,都不是我想要的.我已经知道了不声明为虚函数,会造成内存泄露.我想知道为什么会造成内存泄露,原因是什么. 解决方案 1. 析构函数跟普通成员

实例讲解C++编程中的虚函数与虚基类_C 语言

虚函数① #include "stdafx.h" #include <iostream> using namespace std; class B0//基类B0声明 { public: void display(){cout<<"B0::display()"<<endl;}//公有成员函数 }; class B1: public B0//公有派生类B1声明 { public: void display(){cout<<