重载运算符

简介: 重载运算符

可重载运算符/不可重载运算符


下面是可重载的运算符列表:

双目算术运算符

+ (加),-(减),*(乘),/(除),% (取模)

关系运算符

==(等于),!= (不等于),< (小于),> (大于),<=(小于等于),>=(大于等于)

逻辑运算符

||(逻辑或),&&(逻辑与),!(逻辑非)

单目运算符

+ (正),-(负),*(指针),&(取地址)

自增自减运算符

++(自增),--(自减)

位运算符

| (按位或),& (按位与),~(按位取反),^(按位异或),,<< (左移),>>(右移)

赋值运算符

=, +=, -=, *=, /= , % = , &=, |=, ^=, <<=, >>=

空间申请与释放

new, delete, new[ ] , delete[]

其他运算符

()(函数调用),->(成员访问),,(逗号),[](下标)


下面是不可重载的运算符列表:


  • .:成员访问运算符
  • .*, ->*:成员指针访问运算符
  • :::域运算符
  • sizeof:长度运算符
  • ?::条件运算符
  • #: 预处理符号


运算符重载实例


下面提供了各种运算符重载的实例,帮助您更好地理解重载的概念。


运算符重载的同时也可以发生函数重载!

#include<iostream>
using namespace std;
//加号运算符重载class xiMeng{public:
    int M_A;
    int M_B;
    //通过成员函数运算符重载
    /*xiMeng operator + (xiMeng& p)
    {
        xiMeng temp;
        temp.M_A = this->M_A + p.M_A;
        temp.M_B = this->M_B + p.M_B;
        return temp;
    }*/};
//通过全局函数运算符重载
xiMeng operator+ (xiMeng& p1, xiMeng& p2){
    xiMeng temp;
    temp.M_A = p1.M_A + p2.M_A;
    temp.M_B = p1.M_B + p2.M_B;
    return temp;}
//运算符重载也可以发生函数重载
xiMeng operator+ (xiMeng& p, int num){
    xiMeng temp;
    temp.M_A = p.M_A + num;
    temp.M_B = p.M_B + num;
    return temp;}
 
void xiMengTest() {
    xiMeng p1;
    p1.M_A = 15;
    p1.M_B = 25;
 
    xiMeng p2;
    p2.M_A = 10;
    p2.M_B = 30;
 
    //通过全局函数运算符重载
    xiMeng p3 = p1 + p2;
    cout << "p3.M_A = " << p3.M_A << endl;
    cout << "p3.M_B = " << p3.M_B << endl;
 
    //运算符重载也可以发生函数重载
    xiMeng p4 = p1 + 100;
    cout << "p4.M_A = " << p4.M_A << endl;
    cout << "p4.M_B = " << p4.M_B << endl;}
int main(){
    xiMengTest();
 
    return 0;}
目录
相关文章
|
6月前
|
编译器 C++
c++重载函数和重载运算符
c++重载函数和重载运算符
34 0
|
5月前
|
安全 程序员 C++
C++一分钟之-重载运算符
【6月更文挑战第21天】C++的运算符重载让程序员能为自定义类型定制运算符行为,增强代码表达力。但要注意清晰性、优先级和返回类型。遵循运算符原有意义,充分测试,并用注释解释非直观设计。示例展示了如何为复数类重载`+`运算符。避免重载内置类型,注意结合性,且慎用隐式转换。重载应提升可读性而非复杂化代码。
45 2
|
6月前
|
C++ 编译器
|
6月前
|
程序员 编译器 C++
c++重载运算符和重载函数
c++重载运算符和重载函数
35 1
|
6月前
|
C++ 开发者
42重载运算符的限制
42重载运算符的限制
45 0
|
6月前
|
C++
C++ operator关键字的使用(重载运算符、仿函数、类型转换操作符)
C++ operator关键字的使用(重载运算符、仿函数、类型转换操作符)
88 0
|
编译器 C++
C++ 重载函数
C++ 重载函数
57 0
|
C++
36.【C/C++ 重载运算符,(全干的无水分)】
36.【C/C++ 重载运算符,(全干的无水分)】
37 0
|
编译器 C++
C++的重载运算符和重载函数
C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载 在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。 下面的实例中,同名函数print