C++ 运算符重载解析

编程入门 行业动态 更新时间:2024-10-23 14:34:32

C++ <a href=https://www.elefans.com/category/jswz/34/1771114.html style=运算符重载解析"/>

C++ 运算符重载解析

C++运算符重载

C++的运算符重载其实就是定义一个函数,让运算符具有不同的功能。 在用到该运算符时,编译器会自动调用这个函数。也就是说,运算符重载是通过函数来实现的,本质上是函数重载(参数发生变化)。

运算符重载
返回值类型 operator运算符名称(参数列表){
}

运算符重载除了函数名有特定的格式外,和其他普通函数没有什么区别。

  1. 在类中定义运算符重载
  2. 在全局定义运算符重载、

在类中定义运算符重载:

#inculde<iostream>
using namespace std;class complex{
public:complex();complex(double real,double image); 
public:comlplex operator+(const complex &A) const;
private:double m_real;double m_image;
};	
complex::complex():m_real(0.0),m_image(0.0){}
complex::complex(double real,double image):m_real(real),#重载运算符
complex complex::operator+(const complex &A) const{complex B;B.m_real = this->m_real+A.m_real;B.m_image = this->m_image+A.m_image;return B;}
int main(){complex c1(2.3,3.1);complex c2(3.1,3.5);complex c3;c3 = c1+c2;

说明:const表示这是一个const成员函数,也叫常成员函数,常成员函数需要在声明和定义的时候在函数头部的尾部同时加上const。

c3 = c1 + c2 这句的意思就是:
c3 = c1.operator+(c2)

全局重载运算符:

#include <iostream>
using namespace std;
class complex{
public:    complex();    complex(double real, double imag);
public:    void display() const;    //声明为友元函数    frend complex operator+(const complex &A,const complex &B);
private:    double m_real;    double m_imag;
};
complex operator+(const complex&A,const complex&B);complex operator+(const complex &A, const complex &B)
{complex C;C.m_real = A.m_real + B.m_real;C.m_image = A.m_image + B.m_image;return C;
}

运算符重载函数不是 complex 类的成员函数,但是却用到了 complex 类的 private 成员变量,所以必须在 complex 类中将该函数声明为友元函数。

更多推荐

C++ 运算符重载解析

本文发布于:2023-07-27 22:20:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1231649.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:运算符

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!