c++语言 运算符重载 使用重载运算符实现类的加法运算
2012-11-09 13:55
429 查看
//运算符重载 //C++提供了许多内置数据类型,如整形、浮点型、字符型等,也提供了相应的运算符(+,-,>,<等),用于进行数据的数学运算和逻辑运算. //重载运算符的格式如下: //函数类型 operator 运算符号 (参数列表) //{对运算符的重载处理} //使用重载运算符实现类的加法运算 #include <iostream> using namespace std; class Man //声明一个Man类 { public: Man(int a = 0, int h = 0); Man operator +(Man &a); //重载"+"实现相加的功能 void display(); //显示类中的信息 private: int age; int height; }; Man::Man(int a, int h) { age = a; height = h; } void Man::display() { cout << "age is:" << age << endl; cout << "height is:" << height << endl; } Man Man::operator +(Man &a) //定义重载运算符函数 { Man c; c.age = a.age + age; c.height = a.height + height; return c; } int main(int argc, char * argv[]) { Man a(20, 170); Man b(30, 180); Man c; c = a + b; //将两个对象相加,然后赋值给C对象 a.display(); b.display(); c.display(); return 0; } //有以下几点重载运算符的限制需要读者注意: //*C++中不允许用户定义新的运算符,只能对已有的运算符进行重载. //*不能改变原有运算符操作数的个数. //*不能改变原有运算符的优先级. //*不能改变原有运算符的结合性. //*不能改变原有运算符的语法结构. //对于C++中的大多数运算符来说都是可以进行重载,但是"::", "?", ":"和"."运算符不能被重载. //重载运算符的规则如下: //*一元操作数可以是不带参数的成员函数,或者是带一个参数的非成员函数. //*二元操作数可以是带一个参数的成员函数,或者是带两个参数的非成员函数. //*"=","[]","->"和"()"运算符只能定义为成员函数. //*"->"运算符的返回值必须是指针类型或者能够使用"->"运算符类型的对象. //*重载"++"和"--"运算符时,带一个int类型参数,表示后置运算;不带参数表示前置运算.
相关文章推荐
- 使用运算符重载实现复数的加法运算
- C++语言使用字符数组实现大数加减乘除运算
- 不使用算术运算符实现加法运算
- 深入理解异或运算 xor 的含义——再探不使用加减乘除实现加法运算、不使用额外空间交换两个变量的值
- 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)
- 只使用++运算实现加法,减法,乘法,除法PHP实现
- 使用shell脚本实现加法乘法运算
- 不使用加减乘除+-*/,实现加法运算(使用位运算符)
- 不使用四则运算实现加法运算
- 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算
- 不使用运算符号实现加法
- 使用C++的string实现高精度加法运算的实例代码
- (PHP实现)只使用++运算实现加法,减法,乘法,除法
- (PHP实现)只使用++运算实现加法,减法,乘法,除法
- 使用 & ^ << 等 位符实现加法运算
- 多项式加法运算 使用链表实现
- 使用C++的string实现高精度加法运算
- 使用C++的string实现高精度加法运算
- 程序中不使用“+”法运算,实现整数加法运算
- ARM指令--adc 实现64位加法运算