C++ '+'重载

这是因为第十三行拷贝构造函数的影响.....调了好久才发现,然后  第二个代码可以直接避免这种影响。

各种重载链接

#include<iostream>
using namespace std;
class CRange{
    protected:
        int width,height;
    public:
        CRange(){width = height = 0;}
        CRange(int wid=0,int hei=0){
            width=wid;
            height=hei;
    //        cout<<"构造函数被调用"<<endl;
        }
       // CRange(CRange &ran);
        CRange operator +(CRange &b)
        {
            return CRange(width+b.width,height+b.height);
        }

CRange operator -(const CRange &b);
};
//CRange CRange ::operator +(const CRange &b)
CRange CRange ::operator -(const CRange &b)
{
    return CRange(width-b.width,height-b.height);
}
/*CRange::CRange(CRange &ran){
    cout<<"复制构造函数被调用"<<endl;
}*/
int main()
{
    CRange ran1(10,20);

}
#include<iostream>
using namespace std;
class CRange{
	protected:
		int width,height;
	public:
		CRange(int wid=0,int hei=0){
			width=wid;
			height=hei;
			cout<<"构造函数被调用"<<endl;
		}
		CRange(CRange &ran);
		CRange operator +(const CRange &b);
		CRange operator -(const CRange &b);
};
CRange CRange ::operator +(const CRange &b)
{
    CRange A;
	A.width = width+b.width;
    A.height= height+b.height;

    return A;

}

CRange CRange ::operator -(const CRange &b)
{
    CRange A;
    A.width = width-b.width;
    A.height= height-b.height;

    return A;

}
/*CRange::CRange(CRange &ran){
	cout<<"复制构造函数被调用"<<endl;
}*/
int main()
{
	CRange ran1(10,20);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值