您的位置:首页 > 编程语言 > C语言/C++

C++运算重载符

2015-10-13 23:40 295 查看

运算符重载

下面例子中包含有一般简单的运算符重载

#include <iostream>

using namespace std;

/*对加运算符重载*/

class AddClass

{

public:

/*构造函数*/

AddClass()

{

cout<<"Gou Zao hanshu!"<<endl;

}

/*拷贝构造函数*/

AddClass(float x,float y,float z)

{

Length = x;

wide = y;

High = z;

}

/*获取体积*/

float GetVolue()

{

Vol = Length*wide*High;

return Vol;

}

/*运算符‘+’重载*/

AddClass operator +(const AddClass &m)

{

AddClass ke;

ke.Length = m.Length+Length;

ke.wide = m.wide+wide;

ke.High = m.High+High;

return ke;

}

/*运算符‘-’重载*/

AddClass operator -(const AddClass &m)

{

AddClass ke;

ke.Length = Length- m.Length;

ke.wide = wide - m.wide;

ke.High = High - m.High;

return ke;

}

/*运算符‘*’重载*/

AddClass operator *(const AddClass &m)

{

AddClass ke;

ke.Length = Length* m.Length;

ke.wide = wide * m.wide;

ke.High = High * m.High;

return ke;

}

/*运算符‘/’重载*/

AddClass operator /(const AddClass &m)

{

AddClass ke;

ke.Length = Length/ m.Length;

ke.wide = wide / m.wide;

ke.High = High / m.High;

return ke;

}

/*运算符‘-’*/

AddClass operator -()

{

AddClass ke;

ke.Length = -Length;

ke.wide = -wide;

ke.High = -High;

return ke;

}

/*运算符‘++’*/

AddClass operator ++()

{

AddClass ke;

ke.Length = Length++;

ke.wide = wide++;

ke.High = High++;

return ke;

}

/*运算符‘++’*/

AddClass operator ++(int)

{

AddClass ke;

ke.Length = ++Length;

ke.wide = ++wide;

ke.High = ++High;

return ke;

}

/*赋值*/

void operator =(AddClass &erv)

{

Length = erv.Length;

wide = erv.wide;

High = erv.High;

}

void Diaply(void)

{

cout<<"Length:"<<Length<<endl;

cout<<"Wide:"<<wide<<endl;

cout<<"High:"<<High<<endl;

cout<<"GetVolue:"<<GetVolue()<<endl;

}

private:

float Length;

float wide;

float High;

float Vol;

};

int main(void)

{

/*类的对象,在定义的时候调用拷贝构造函数,如果此处都是构造类型的形式,则只调用拷贝构造函数,不调用构造函数*/

AddClass var_1(10,11,12),Var_2(5,6,7),Var_3(3,4,5);

#if 1

Var_3 = Var_2+var_1;

Var_3.Diaply();

#endif

Var_3 = var_1-Var_2;

Var_3.Diaply();

Var_3 = var_1*Var_2;

Var_3.Diaply();

Var_3 = var_1/Var_2;

Var_3.Diaply();

var_1++;

var_1.Diaply();

++var_1;

var_1.Diaply();

Var_3 = -var_1;

Var_3.Diaply();

var_1.Diaply();

Var_2.Diaply();

var_1 = Var_2;

var_1.Diaply();

getchar();

return 0;

}

执行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: