当前位置:网站首页>继承中的运算符重载:输入输出的传奇
继承中的运算符重载:输入输出的传奇
2022-08-09 07:59:00 【快乐学习吧】
他人实验题目
子类继承父类,运算符的重载能继承吗?
**通过实验,结论:**不能继承也不需要继承。
方法分别在子类和父类中声明友函数,在类外分别定义运算符重载。
例
class Point
{
friend istream&operator >>(istream&in,Point &point_a);
friend ostream&operator<<(ostream &out,Point &point_a);
};
istream&operator>>(istream&in,Point &point_a)
{
return in;
}
ostream&operator<<(ostream &out,Point &point_a)
{
return out;
}
class Circle:public Point
{
friend istream&operator>>(istream&in, Circle&circle_b);
friend ostream&operator<<(ostream&out,Circle&circle_b);
};
istream&operator>>(istream&in,Circle &circle_b)
{
return in;
}
ostream&operator<<(ostream &out,Circle &circle_b)
{
return out;
}
完整实例
#include <iostream>
using namespace std;
class Point
{
protected:
int x,y;
public:
Point (int a,int b)
{
x=a;
y=b;
}
friend istream&operator >>(istream&in,Point &point_a);
friend ostream&operator<<(ostream &out,Point &point_a);
};
istream&operator>>(istream&in,Point &point_a)
{
int a,b;
in>>a>>b;
point_a.x=a;
point_a.y=b;
return in;
}
ostream&operator<<(ostream &out,Point &point_a)
{
out<<"("<<point_a.x<<","<<point_a.y<<")"<<endl;
return out;
}
class Circle:public Point
{
int r;
public:
Circle(int m,int n,int k):Point(m,n)
{
r=k;
}
friend istream&operator>>(istream&in, Circle&circle_b);
friend ostream&operator<<(ostream&out,Circle&circle_b);
};
istream&operator>>(istream&in,Circle &circle_b)
{
int a,b,c;
in>>a>>b>>c;
circle_b.x=a;
circle_b.y=b;
circle_b.r=c;
return in;
}
ostream&operator<<(ostream &out,Circle &circle_b)
{
out<<"("<<circle_b.x<<","<< circle_b.y<<")"<<endl;
out<<circle_b.r<<endl;
return out;
}
int main()
{
Point p(0,0);
Circle c(0,0,0);
cin>>p;
cin>>c;
cout<<p;
cout<<c;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
897. Increasing Order Search Tree
研发分享:机器学习卡片的使用
One-click login server script
“互联网+”大学生创新创业大赛经历
EXCEL使用函数联调(find,mid,vlookup,xlookup)
Kotlin Coroutines - Exception Handling
MySql作业练习题
pc端ncnn搭建与测试
Web 3D渲染引擎HOOPS Communicator动画编辑器的使用 | HOOPS教程
3D软件开发工具HOOPS全套产品开发介绍 | HOOPS Exchange、HOOPS Communicator
VOC格式标签转YOLO格式
File Handling (IO)
C语言:打印菱形
yolov5检测数据集标签数量
Win10电脑的WLAN消失的故事
记录一次客户的APP数据库版本号升级失败的情况
3D软件开发工具HOOPS全套产品开发介绍 | HOOPS Visualize、HOOPS Publish
H3C_利用策略路由实现出口双线路负载(选路)的部署
Anaconda 更换默认虚拟环境
引导过程与服务控制