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;
}
相关推荐
程序大视界1 天前
【C++ 从基础到项目实战】C++(五):类与对象基础——构造、析构与访问控制
开发语言·c++·cpp
代码中介商1 天前
掌握C++ std::bind:参数绑定与灵活调用
开发语言·c++
拽着尾巴的鱼儿1 天前
Java 对象的深拷贝和浅拷贝
java·开发语言
数据法师1 天前
Crow Translate :开源桌面划词翻译工具
c++·qt·开源
IronMurphy1 天前
【算法五十六】84. 柱状图中最大的矩形
算法
fie88891 天前
matlab打靶法求解两点边值优化问题
开发语言·算法·matlab
skywalk81631 天前
请结合以下说明,先完成类似python的内置函数。 然后再去完成内置库(标准款) ‌内置函数‌
开发语言·python
不做无法实现的梦~1 天前
常见工程分析软件
stm32·嵌入式硬件·算法
王璐WL1 天前
【C++】经典易错题(2)
c++
我不是懒洋洋1 天前
手写一个异步日志库:从printf到高性能无锁日志
java·c语言·开发语言·c++·visual studio