C++的接口和重载<<运算符的小例子(试试把Circle的类的virtual的shapeName函数注释掉? )
来源:互联网 发布:蒙牛puremilk知乎 编辑:程序博客网 时间:2024/05/16 11:15
C++代码 参考谭浩强C++ 12章的12.4.3应用实例
//// Shape.h// Shape//// Created by mac on 12-10-22.// Copyright (c) 2012年 Roc. All rights reserved.//#ifndef Shape_Shape_h#define Shape_Shape_h#include<iostream>using namespace std;class Shape {//这就是C++的接口public: virtual float area() const {return 0.0;}//输出一个图形的面积 virtual float volume() const {return 0.0;}//输出一个图形的体积 virtual void shapeName () const = 0;//纯虚函数,打出自己的数据的接口 virtual ~Shape(){};};class Point: public Shape{public: Point(float _x=0,float _y=0):x(_x),y(_y){} void setPoint(float,float); float getX() const{return x;} float getY() const{return y;} virtual void shapeName () const{ cout<<"Point:"<<(*this); } friend ostream & operator << (ostream & , const Point &);// protected: float x,y;};class Circle: public Point{public: Circle(float x=0.0,float y=0,float r=0):Point(x,y),radius(r){} void setRadius(float r){radius = r;} float getRadius() const{return radius;} //求圆的面积 virtual float area() const{ return 3.14159*radius*radius; } virtual void shapeName() const{ cout<<"Circle:"<<(*this); } friend ostream & operator <<(ostream & ,const Circle &);//protected: float radius; };ostream& operator << (ostream & ostream, const Point & p){ ostream<<"["<<p.x<<","<<p.y<<"]"<<endl; return ostream;}ostream & operator << (ostream & ostream, const Circle & c){ ostream<<"Center["<<c.x<<","<<c.y<<"],Radius:"<<c.radius<<endl; return ostream;}#endif//// main.cpp// Shape//// Created by mac on 12-10-22.// Copyright (c) 2012年 Roc. All rights reserved.//#include <iostream>#include <iostream>#include "Shape.h"class TestShape{public: static void test1(){ Point point(3.2,4.5); Circle circle(2.4,1.2,5.6);// point.shapeName();// circle.shapeName();// Shape * pt; pt=&point; pt->shapeName(); pt=&circle; pt->shapeName(); cout<<"circle area:"<<pt->area(); } };int main(int argc, const char * argv[]){ TestShape::test1(); return 0;}
- C++的接口和重载<<运算符的小例子(试试把Circle的类的virtual的shapeName函数注释掉? )
- 重载++运算符的例子
- 运算符重载的例子
- 成员函数和运算符的重载
- c++-运算符的重载
- C++--运算符的重载
- C++virtual的例子(2)
- 接口的小例子
- 针对重载函数调用运算符的一个使用的例子,也就是重载()这个括号
- 类的赋值运算符重载和拷贝构造函数
- c++_类的运算符重载
- 运算符重载的小项目展示
- C++:特殊运算符的重载star、小括号、TYPE自定义类型、new和delete
- 运算符重载的成员函数和有员函数
- 【C++】复制构造函数(拷贝构造函数)和=运算符重载使用的区别
- c++ virtual和函数重载的些许区别
- 成员函数重载运算符和友元函数重载运算符的比较
- 成员函数重载运算符和友元函数重载运算符的比较
- hdu 2176 取(m堆)石子游戏
- android流量监控类TrafficStats讲解
- MCISendString详细参数
- 关于UIView的autoresizingMask属性的研究
- 6.3 Gallery和BaseAdapter容器
- C++的接口和重载<<运算符的小例子(试试把Circle的类的virtual的shapeName函数注释掉? )
- 考试过后再看信息系统开发与管理,发现…
- 模型组合(Model Combining)之Boosting与Gradient Boosting
- Java实现zip压缩/解压缩
- 使用rownum
- 11 java 王少飞-ServletContext应用
- "黑马程序员"张老师Java高新技术学习(注解、类加载器)
- [Android开发][001~002] android开发入门,环境配置
- 公网IP/内网IP: