c++语言 运算符重载 使用重载运算符实现类的加法运算

来源:互联网 发布:万网域名注册阿里云 编辑:程序博客网 时间:2024/05/17 09:20
//运算符重载//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) //定义重载运算符函数{
http://pythonschool.com/python/94.html    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类型参数,表示后置运算;不带参数表示前置运算.
原创粉丝点击