c++ 运算符重载
来源:互联网 发布:软件测试的基本原则 编辑:程序博客网 时间:2024/06/05 23:54
今天看到重载的知识,以前虽然接触过构造函数的重载。但对普通的重载函数并不理解,我看的是谭浩强的基础教材。里面有道例题,是对运算符+的重载,我看了照敲一遍感觉并没有学到什么,就尝试写了个对输出流<<的重载。过程并不像想象的简易,以前尝试自己写过string类,结果也是卡在<<的重载上了。 下面代码重载了两个运算符,分别是‘+’和‘<<’,关于‘+’的重载比较简单,就不赘述呢。主要记述对重载‘<<’的理解。 首先输出流‘<<‘的重载格式一般是 :` friend &ostream operator << (ostream& os,Complex& c); 一定要声明为友员类,ostream应该是私有的。而且我试过这不加取值符号&,就会报错。而对’+‘而言,不加取值符没有影响。而且’<<‘是不能作为成员函数的,对这些我都理解得不太透彻。知其然,而不知其所以然。还是用代码解释吧
#include
include
using namespace std;
class Complex
{
private:
double real;
double imag;
public:
Complex();
Complex(double,double);
Complex operator + (Complex c2);
void display();
friend &ostream operator << (ostream& os,Complex& c);
};
Complex::Complex()
{
}
Complex::Complex(double i,double j)
{
real=i;
imag=j;
}
Complex Complex::operator + (Complex c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
ostream& operator<<(ostream& os,Complex& c)
{
os<<”(“<
`
阅读全文
0 0
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- C#:运算符重载
- C++:运算符重载
- IEC/PAS 62612
- Haskell语言学习笔记(51)Comonad
- 递归算法转非递归
- 转载:图的最小生成树和最短路径
- 学习总结1
- c++ 运算符重载
- Haskell语言学习笔记(52)正则表达式
- 画圆
- CCF 送货 (欧拉路径+字典序最小 80分)
- c++中引入全局static下,产生的问题
- BAT机器学习面试题
- 正则表达式(Java,C#,C++)
- 自定义View流式布局
- jQuery教程 7 遍历