程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 擴展運算符功能,使之能與double型數據進行運算

擴展運算符功能,使之能與double型數據進行運算

編輯:C++入門知識

[cpp] 
/*
* 程序的版權和版本聲明部分
* Copyright (c)2012, 煙台大學計算機學院學生
* All rightsreserved.
* 文件名稱: object.cpp
* 作者:隋 鑫
* 完成日期: 2013年 4 月 18 日
* 版本號: v1.0
* 輸入描述:無
* 問題描述:
* 程序輸出:
*/ 
 
#include <iostream.h>  
class Complex  
{public: 
    Complex(){real=0;imag=0;} 
    Complex(double r,double i){real=r;imag=i;} 
    friend Complex operator+(double &m,Complex &c); 
    friend Complex operator-(double &m,Complex &c); 
    friend Complex operator*(double &m,Complex &c); 
    friend Complex operator/(double &m,Complex &c); 
    friend Complex operator+(Complex &c,double &m); 
    friend Complex operator-(Complex &c,double &m); 
    friend Complex operator*(Complex &c,double &m); 
    friend Complex operator/(Complex &c,double &m); 
    void display(); 
 private: 
    double real; 
    double imag; 
}; 
 
 
Complex operator+(double &m,Complex &c) 

    return Complex(m+c.real,c.imag); 

Complex operator-(double &m,Complex &c) 

    return Complex(m-c.real,c.imag); 

Complex operator*(double &m,Complex &c) 

    return Complex(m*c.real,m*c.imag); 

Complex operator/(double &m,Complex&c) 

    return Complex((m*c.real)/(c.real*c.real+c.imag*c.imag),(-m*c.imag)/(c.real*c.real+c.imag*c.imag)); 

 
Complex operator+(Complex &c,double &m) 

    return Complex(m+c.real,c.imag); 

Complex operator-(Complex &c,double &m) 

    return Complex(m-c.real,c.imag); 

Complex operator*(Complex &c,double &m) 

    return Complex(m*c.real,m*c.imag); 

Complex operator/(Complex &c,double &m) 

    return Complex(c.real/m,c.imag/m); 

void Complex::display() 

  cout<<"("<<real<<","<<imag<<"i)"<<endl; 

int main() 

    double c1=3.14; 
    Complex c2(5,-10),c3; 
    cout<<"c1="; 
    cout<<c1<<endl; 
    cout<<"c2="; 
    c2.display(); 
    c3=c1+c2; 
    cout<<"c1+c2="; 
    c3.display(); 
    c3=c1-c2; 
    cout<<"c1-c2="; 
    c3.display(); 
    c3=c1*c2; 
    cout<<"c1*c2="; 
    c3.display(); 
    c3=c1/c2; 
    cout<<"c1/c2="; 
    c3.display(); 
    c3=c2/c1; 
    cout<<"c2/c1="; 
    c3.display(); 
    return 0; 

/*
* 程序的版權和版本聲明部分
* Copyright (c)2012, 煙台大學計算機學院學生
* All rightsreserved.
* 文件名稱: object.cpp
* 作者:隋 鑫
* 完成日期: 2013年 4 月 18 日
* 版本號: v1.0
* 輸入描述:無
* 問題描述:
* 程序輸出:
*/

#include <iostream.h>
class Complex
{public:
 Complex(){real=0;imag=0;}
 Complex(double r,double i){real=r;imag=i;}
 friend Complex operator+(double &m,Complex &c);
 friend Complex operator-(double &m,Complex &c);
 friend Complex operator*(double &m,Complex &c);
 friend Complex operator/(double &m,Complex &c);
 friend Complex operator+(Complex &c,double &m);
 friend Complex operator-(Complex &c,double &m);
 friend Complex operator*(Complex &c,double &m);
 friend Complex operator/(Complex &c,double &m);
 void display();
 private:
 double real;
 double imag;
};


Complex operator+(double &m,Complex &c)
{
 return Complex(m+c.real,c.imag);
}
Complex operator-(double &m,Complex &c)
{
 return Complex(m-c.real,c.imag);
}
Complex operator*(double &m,Complex &c)
{
 return Complex(m*c.real,m*c.imag);
}
Complex operator/(double &m,Complex&c)
{
 return Complex((m*c.real)/(c.real*c.real+c.imag*c.imag),(-m*c.imag)/(c.real*c.real+c.imag*c.imag));
}

Complex operator+(Complex &c,double &m)
{
 return Complex(m+c.real,c.imag);
}
Complex operator-(Complex &c,double &m)
{
 return Complex(m-c.real,c.imag);
}
Complex operator*(Complex &c,double &m)
{
 return Complex(m*c.real,m*c.imag);
}
Complex operator/(Complex &c,double &m)
{
 return Complex(c.real/m,c.imag/m);
}
void Complex::display()
{
  cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
 double c1=3.14;
 Complex c2(5,-10),c3;
 cout<<"c1=";
 cout<<c1<<endl;
 cout<<"c2=";
 c2.display();
 c3=c1+c2;
 cout<<"c1+c2=";
 c3.display();
 c3=c1-c2;
 cout<<"c1-c2=";
 c3.display();
 c3=c1*c2;
 cout<<"c1*c2=";
 c3.display();
 c3=c1/c2;
 cout<<"c1/c2=";
 c3.display();
 c3=c2/c1;
    cout<<"c2/c1=";
 c3.display();
 return 0;
}運行結果:

 

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved