说一下有关c++运算符的重载


//1。


//定义在类operation中,运算符需要定义为friend型才可以访问保护区中的变量
//以下的例子是一个重载适合复数的计算
class complex 
{
public:
 complex( int real, int image );
 virtual ~complex();
 friend complex operator + ( complex& c1, complex& c2 );
 //使用friend声明为友元,采用第一种定义方法
 //使用complex& operator + ( complex&b c1 );,采用第二种定义方法
 complex& operator = ( complex& c );
 //有关赋值运算符的重载实现,见2。
protected:
 int m_real;
 int m_image;
 char *pName;
};
//第一种定义方法,声明为友元的可以访问保护区中的数据,注意友元函数不属于类,是

//类的好朋友 ^_^  另外在这里使用c++的重载加减乘除运算时使用双参数,比单参数要好些

//双参数可以不用改变当前对象中的数据,即(this),这样可以达到多次计算的目的


complex operator + ( complex& c1, complex& c2 )
{
}
//第二中定义方法,需要访问保护区中的数据,需要定义为类中的函数
complex& complex::operator + ( complex& c1 )
{
 m_real += c1.m_real;
 m_image += c1.m_image;  
 return * this;
}


//2。


//当重载赋值运算符"="的时候,需要注意,堆中的数据需要及时的释放
complex& complex::operator = ( complex& c )
{
 delete pName;//当变量是来自堆区的,应该释放后再赋值
 strcpy( pName, c.pName );
 return * this;   
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值