输出运算符重载
来源:互联网 发布:淘宝店铺2心要多少单 编辑:程序博客网 时间:2024/06/08 04:41
/** 程序的版权和版本声明部分:* Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 文件名称:test.cpp* 作 者:任子仪* 完成日期:2014年 4月 22日* 版 本 号:v12.1* 输入描述:无* 问题描述:。* 程序输出:* 问题分析:略* 算法设计:略*/#include<iostream>using namespace std;class Complex{public: Complex() { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } //二目运算符重载 Complex operator+(Complex &c2); Complex operator-(Complex &c2); Complex operator*(Complex &c2); Complex operator/(Complex &c2); //一目运算符重载 Complex operator-(); friend ostream& operator << (ostream&,Complex&);private: double real; double imag;};ostream& operator << (ostream& output,Complex& c){ if(c.imag>0) output<<c.real<<"+"<<c.imag<<"i"<<endl; else output<<c.real<<c.imag<<"i"<<endl; return output;}//下面定义成员函数Complex Complex::operator+(Complex &c2){ return Complex(real+c2.real,imag+c2.imag);}Complex Complex::operator-(Complex &c2){ return Complex(real-c2.real,imag-c2.imag);}Complex Complex::operator*(Complex &c2){ Complex c; c.real=real*c2.real-imag*c2.imag; c.imag=real*c2.imag+imag*c2.real; return c;}Complex Complex::operator/(Complex &c2){ Complex c; double d=c2.real*c2.real+c2.imag*c2.imag; c.real=(real*c2.real+imag*c2.imag)/d; c.imag=(imag*c2.real-real*c2.imag)/d; return c;}Complex Complex::operator-(){ Complex c; c.imag=0-imag; c.real=0-real; return c;}//下面定义用于测试的main()函数int main(){ Complex c1(3,4),c2(5,-10),c3; cout<<"c1="<<c1; cout<<"c2="<<c2; c3=c1+c2; cout<<"c1+c2="<<c3; c3=c1-c2; cout<<"c1-c2="<<c3; c3=c1*c2; cout<<"c1*c2="<<c3; c3=c1/c2; cout<<"c1/c2="<<c3; c3=-c1; cout<<"-c1="<<c3; return 0;}
示例图片:
心得体会:上课时怎么都不明白为什么可以直接输出结果还有重载,现在明白了。实践
出的,高兴啊。。。
0 0
- <<输出运算符重载
- 输出运算符重载
- C++ 重载输出运算符<<
- c++运算符重载,输出符号重载
- 友元类输出运算符的重载
- 输入运算符和输出运算符的重载
- C++索引运算符【】和输出运算符<<重载
- c++插入运算符和输出运算符的重载
- C++运算符重载——输入/输出运算符
- 重载输出运算符,不用友元函数
- C++ class template中,重载输出运算符(<<)的方法
- C++重载流插入和流输出运算符
- cout 堆栈,operator<< 运算符重载输出问题
- 输出运算符重载<<为什么一定要使用友元呢
- C#控制台 hello world之 用运算符重载输出
- c++知识点----输出宽度填充以及运算符重载
- 0621 第五讲操作符重载(1)算数、输出、下标运算符重载
- 拷贝构造函数,赋值运算符重载,友元输出重载
- redhat带来的困扰
- How to open a large text file on Linux
- adb server is out of date. killing
- 向下取整和向上取整
- 64位linux在eclipse平台开发的库不兼容的问题
- 输出运算符重载
- 【Android自动触发】
- EL表达式简介
- 三个数的算数平方根
- 人生第一份工作
- WEEK9
- ubuntu-14.04-desktop-amd64 安装 Beyond Compare,ia32-libs
- 二叉树(一)利用数组初始化二叉树,并实现前序中序后序遍历
- poj 3449 Geometric Shapes 线段相交