zoukankan      html  css  js  c++  java
  • C++学习笔记(1)

    先帖一个课堂作业,运算符重载、友元函数:

    #include <iostream.h>
    
    class Complex
    {
    private:
    	double rel,img;
    public:
    	Complex(double r=0,double i=0)
    	{
    		rel=r;
    		img=i;
    	}
    	void show(void)
    	{
    		cout<<rel;
    		if(img>=0)cout<<"+";
    		if(img)cout<<img<<"i";
    		cout<<endl;
    	};
    	friend Complex operator+(Complex &c1,Complex &c2);
    	friend Complex operator-(Complex &c1,Complex &c2);
    	friend Complex operator*(Complex &c1,Complex &c2);
    	friend Complex operator/(Complex &c1,Complex &c2);
    };
    
    Complex operator+(Complex &c1,Complex &c2)
    {
    	Complex c;
    	c.rel = c1.rel+c2.rel;
    	c.img = c1.img+c2.img;
    	return c;
    }
    Complex operator-(Complex &c1,Complex &c2)
    {
    	Complex c;
    	c.rel = c1.rel-c2.rel;
    	c.img = c1.img-c2.img;
    	return c;
    }
    Complex operator*(Complex &c1,Complex &c2)
    {
    	Complex c;
    	c.rel = c1.rel*c2.rel-c1.img*c2.img;
    	c.img = c1.img*c2.rel+c1.rel*c2.img;
    	return c;
    }
    Complex operator/(Complex &c1,Complex &c2)
    {
    	Complex c;
    	double temp;
    	temp=c2.rel*c2.rel+c2.img*c2.img;
    	if(temp)
    	{
    		c.rel = (c1.rel*c2.rel+c1.img*c2.img)/temp;
    		c.img = (c1.img*c2.rel-c1.rel*c2.img)/temp;	
    	}
    	return c;
    }
    
    int main(int argc,int *argv[])
    {
    	Complex c1(1,2);
    	Complex c2(3,4);
    	Complex c3(0,0);
    	c3=c1+c2;
    	cout<<"c1+c2=";
    	c3.show();
    	c3=c1-c2;
    	cout<<"c1-c2=";
    	c3.show();
    	c3=c1*c2;
    	cout<<"c1*c2=";
    	c3.show();
    	c3=c1/c2;
    	cout<<"c1/c2=";
    	c3.show();
    	return 0;
    }
    

      

  • 相关阅读:
    数据库基础
    Junit单元测试、反射与注解
    Stream流
    Java IO所用类
    字符集
    Lambda表达式
    【jdk1.8源码分析】LinkedHashMap
    线性表
    【jdk1.8源码分析】ArrayList
    java学习血泪史
  • 原文地址:https://www.cnblogs.com/fwindpeak/p/3362694.html
Copyright © 2011-2022 走看看