c++中运算符的重载

1、重载关键字:operator

2、格式:  返回值 operator 运算符(参数){函数内容}

3、场景:在两个对象之间的变量

4、实现方法:

        1.成员函数实现方式:

                          双目: 类名& operator运算符(类名& temp);
                          单目    类名& operator运算符();

        2.友元函数实现方式:

                        双目:friend 类名 operator运算符(const 类名& temp,const 类名& my);
                        单目:friend 类名 operator运算符(const 类名& temp);

        3.全局函数的实现方式:

                        单目:类名 operator运算符(const 类名& temp);
                        双目:类名 operator运算符(const 类名& other,const 类名& my);

        4.特殊运算符重载方式:

                         输入流: istream& 类名>>(istream& is,类名& temp);

                         输出流:ostream& 类名 << (ostream& os, const 类名& temp);

5、注意事项:

        1.运算符重载后,重载后的运算符即可按照原来的风格调用;
        2.不可以重载新的运算符(比如$),也不可以修改原来运算符的结合方式(如:a++b);
        3.空类中,默认添加无参构造,析构,this,浅拷贝;

        4.输出流和输入流都不可以用成员函数;

        5.赋值运算符重载只能用成员函数。

6、代码部分:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++运算符重载的规则如下: 1. 只能重载C++已有的运算符,不能重载成员运算符“.”、指针运算符“*”、作用域运算符“::”等少数几个运算符。 2. 重载后的运算符必须至少有一个操作数是用户自定义的类型。 3. 重载后的运算符不能改变原有的操作数个数。 4. 重载后的运算符不能改变原有的操作数类型。 5. 重载后的运算符不能改变原有的优先级和结合性。 6. 重载后的运算符不能改变原有的语法结构。 实现运算符重载的方式是通过定义一个成员函数或非成员函数来实现。对于成员函数,重载运算符作为函数名,不需要指定返回类型,也不需要指定参数列表,因为操作数已经隐式地作为函数的调用者和参数传递进来了。对于非成员函数,重载运算符作为函数名,需要指定返回类型和参数列表,其至少有一个参数是用户自定义的类型。 以下是一个实现运算符重载的例子,假设我们定义了一个名为Complex的复数类,需要实现加法运算符重载: ```c++ class Complex { public: Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {} Complex operator+(const Complex& c) const { return Complex(real + c.real, imag + c.imag); } private: double real; double imag; }; ``` 在上面的例子,我们通过定义一个名为operator+的成员函数来实现加法运算符重载。该函数的参数是一个常量引用,表示另一个复数对象,返回值是一个新的Complex对象,表示两个复数对象相加的结果。在函数体内,我们通过访问成员变量real和imag来实现复数的加法运算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值