tuxing,虚函数

cpp 复制代码
#include<iostream>
using namespace std;
class tuxing{
	protected:		
		double r;
	public: 
		tuxing(int r1)
		{
			r=r1;
		}
		tuxing()
			{		
			}
		virtual double biaomianji()
		{
			return 0;
		}
	virtual double tiji()
	{
		return 0;
	}
};
class zhengfangti:public tuxing{
	public:		
		zhengfangti(double r1):tuxing(r1)
			{		
			}
	virtual double biaomianji()
	{
		return r*r*6;
	}
	virtual double tiji()
	{
		return r*r*r;
	}
};
class yuan:public tuxing{
	public:
		yuan(double r1):tuxing(r1)
		{		
		}
	virtual double biaomianji()
		{
			return r*r*3.14/4;
		}
		virtual double tiji()
		{
			return r*r*r*3.14*3/4;
		}
};
class yuanzhu:public tuxing 
{
	protected:
		double h;
	public:		
	yuanzhu(double r1,double h1):tuxing(r1)
	{
		h=h1;	
	}
	virtual double biaomianji()
			{
				return 2*r*3.14*h;
			}
			virtual double tiji()
			{
				return r*r*3.14*h;
			}	
};
void TopPrint(tuxing&r )
{
cout<<r.biaomianji()<<endl;
cout<<r.tiji()<<endl;
}
int main()
{	
	tuxing p1(4),*p;	
	zhengfangti p2(4);
	yuan p3(4);
	yuanzhu p4(4,3);
	p=&p2;
  	   cout<<p->tiji()<<endl;
       cout<<p->biaomianji()<<endl;
	p=&p3;
		cout<<p->tiji()<<endl;
	    cout<<p->biaomianji()<<endl;
	p=&p4;
		cout<<p->tiji()<<endl;
	    cout<<p->biaomianji()<<endl;
TopPrint(p2);
TopPrint(p3);	
TopPrint(p4);	
	return 0;
}
相关推荐
淀粉肠kk几秒前
【C++11】智能指针详解
开发语言·c++
kyriewen1110 分钟前
Next.js部署:从本地跑得欢,到线上飞得稳
开发语言·前端·javascript·科技·react.js·前端框架·ecmascript
AI人工智能+电脑小能手11 分钟前
【大白话说Java面试题】【Java基础篇】第21题:HashMap和Hashtable的区别是什么
java·开发语言·面试·哈希算法·散列表·hash table
不想写代码的星星13 分钟前
COW(Copy-on-Write):开抄开抄,哎嘿,我装的
开发语言·c++
慕容卡卡15 分钟前
Claude 使用神器(web页面)--CloudCLI UI
java·开发语言·前端·人工智能·ui·spring cloud
咬_咬16 分钟前
go语言学习(函数)
开发语言·学习·golang
Sylvia-girl17 分钟前
C++内存如何管理?
java·jvm·c++
froginwe1117 分钟前
PHP MySQL Delete 操作指南
开发语言
shehuiyuelaiyuehao19 分钟前
算法14,滑动窗口,找到字符串中所有字母异位词
算法
凯瑟琳.奥古斯特19 分钟前
图论核心考点精讲
开发语言·数据结构·算法·排序算法·哈希算法