zoukankan      html  css  js  c++  java
  • c++ operator重载的例子

    #include <iostream>
    using namespace std;
    class A
    {
    public:
    	A(double _data = 0.0):data(_data){}
    	A& operator = (const A& rhs)
    	{
    		data = rhs.data;
    		return *this;
    	}
    	
    	friend A operator + (const A& lhs,const A& rhs);
    	friend A operator - (const A& lhs,const A& rhs);
    	friend A operator * (const A& lhs,const A& rhs);
    	friend A operator + (const A& lhs,double rhs);
    	friend A operator + (double lhs,const A& rhs);
    	friend A operator * (const A& lhs,double rhs);
    	friend A operator * (double lhs,const A& rhs);
    	friend A operator - (const A& lhs,double rhs);
    	friend A operator - (double lhs,const A& rhs);
    	
    	
    	friend ostream& operator << (ostream& fout,A& a);
    //	A& operator += (const A& rhs);
    //	A& operator -= (const A& rhs);
    //	A& operator *= (const A& rhs);	
    private:
    	double data;
    };
    
    A operator + (const A& lhs,const A& rhs)
    {
    	A res(0);
    	res.data = lhs.data + rhs.data;
    	return res;
    }
    A operator - (const A& lhs,const A& rhs)
    {
    	A res(0);
    	res.data = lhs.data - rhs.data;
    	return res;
    }
    A operator * (const A& lhs,const A& rhs)
    {
    	A res(0);
    	res.data = lhs.data * rhs.data;
    	return res;
    }
     A operator + (const A& lhs,double rhs)
     {
     	A res(0);
    	res.data = lhs.data + rhs;
    	return res;
    }
    
    A operator + (double lhs,const A& rhs)
    {
     	A res(0);
    	res.data = lhs + rhs.data;
    	return res;
    }
    A operator * (const A& lhs,double rhs)
    {
    	A res(0);
    	res.data = lhs.data * rhs;
    	return res;
    }
    A operator * (double lhs,const A& rhs)
    {
    	A res(0);
    	res.data = lhs * rhs.data;
    	return res;
    }
    A operator - (const A& lhs,double rhs)
    {
    	A res(0);
    	res.data = lhs.data - rhs;
    	return res;	
    }
    A operator - (double lhs,const A& rhs)
    {
    	A res(0);
    	res.data = lhs - rhs.data;
    	return res;	
    }
    	
    ostream& operator << (ostream& fout,A& a)
    {
    	fout << a.data ;
    	return fout;
    }
    int main(int argc, char* argv[])
    {
    	A a(2.3);
    	A b(1.2);
    	A d(3.4);
    	A c;
    	c = a + b + d;
    	c=a+b;
    	c=a+1.0;
    	c=a-b;
    	c=a-1.0;
    	c=a*b;
    	c=a*1.0;
    	cout << c << endl;
    	
    	c=1.0+2.0*a*a-3.0*a*b;
    	cout << c << endl;
    	return 0;
    }
  • 相关阅读:
    jquery实现图片预加载提高页面加载速度
    oracle 误删数据
    oracle 创建命令
    flash 遮住 div 解决办法
    mongodb查询find(
    mongodb中重命名column名称(更改字段名称)
    Mongodb Javascript 返回document
    mongodb mapreduce用法
    mongodb 中find中执行javascript $where
    mongodb javascript foreach使用方法
  • 原文地址:https://www.cnblogs.com/speedmancs/p/2076873.html
Copyright © 2011-2022 走看看