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;
}
相关推荐
爱coding的橙子41 分钟前
每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)
算法·leetcode
码上淘金2 小时前
【Python】Python常用控制结构详解:条件判断、遍历与循环控制
开发语言·python
Brilliant Nemo2 小时前
四、SpringMVC实战:构建高效表述层框架
开发语言·python
虾球xz2 小时前
游戏引擎学习第268天:合并调试链表与分组
c++·学习·链表·游戏引擎
fpcc3 小时前
跟我学c++高级篇——模板元编程之十三处理逻辑
c++
格林威3 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
橙子199110164 小时前
在 Kotlin 中什么是委托属性,简要说说其使用场景和原理
android·开发语言·kotlin
androidwork4 小时前
Kotlin Android LeakCanary内存泄漏检测实战
android·开发语言·kotlin
学地理的小胖砸4 小时前
【Python 基础语法】
开发语言·python
Dream it possible!4 小时前
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
c++·leetcode·位运算·哈希表·哈希集合