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

//运算符重载
//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类型参数,表示后置运算;不带参数表示前置运算.

原文链接: https://www.cnblogs.com/pythonschool/archive/2012/11/09/2762502.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/68710

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午1:27
下一篇 2023年2月9日 下午1:27

相关推荐