首页 > 其他分享 >运算符重载

运算符重载

时间:2024-12-24 17:33:10浏览次数:3  
标签:p2 p1 Point 运算符 operator 重载

基本概念

让类和结构体能够运用运算符

关键字 operator

必须要是一个公共的静态方法,返回值要在 operator

条件运算符需要成对实现,一个符号可以多个重载且不能使用ref和out

基本语法

//public static 返回类型 operator 运算符(参数列表)
class Point
{
    public int x ;
    public int y;
    //必须要是一个公共的静态方法
    public static Point operator +(Point p1,Point p2)
    {
        Point p = new Point();
        p.x=p1.x+p2.x;
        p.y=p1.y+p2.y
        return p ;
    }
    //一个运算符可以有多个重载
    public static Point operator +(Point p1,int value)
    {
        Point p = new Point();
        p.x=p1.x+value;
        p.y=p1.y+value
        return p ;
    }
    //使用
    Point p = new Point();
    p.x=1;
    p.y=1;
    Point p2 = new Point();
    p2.x=2;
    p2.y=2;
    Point p3 = p+p2;
    Point p4 = p+2;
}

可重载和不可重载的运算符

算术运算符都可以

逻辑运算符只有 ! 可以重载

位运算符

条件运算符相关符号要成对实现(有大于就有小于)

不可重载的运算符

逻辑与 %%

逻辑或 ||

索引符 []

强转运算符 ()

特殊运算符:

.

三目运算符 ?:

赋值符号 =

标签:p2,p1,Point,运算符,operator,重载
From: https://www.cnblogs.com/cannedmint/p/18628076

相关文章

  • C++函数重载
    #include<stdio.h>classTimer{public:Timer(){min=0;sec=0;}voidadd(intsec){this->sec+=sec;}voidshow(){printf(&qu......
  • 三目运算符的使用
    Timing_Length=(Timing_Length==3)?0:Timing_Length++;在C语言(以及很多类似的编程语言中),三目运算符(?:)要求其第二和第三操作数(也就是?后面和:后面的表达式)是能返回一个确定值的常规表达式。在Timing_Length=(Timing_Length==3)?0:Timing_Length++;这个语句里,Ti......
  • 【Rust自学】6.3. 控制流运算符-match
    喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)6.3.1.什么是matchmatch允许一个值与一系列模式进行匹配,并执行匹配的模式对应的代码。模式可以是字面值、变量名、通配符等等。将match表达式想象为硬币分类机:硬币......
  • 如何使用 PHP 扩展运算符
    数组合并(...)基本概念在PHP中,扩展运算符用于将一个或多个数组的元素合并到另一个数组中。它提供了一种简洁的方式来组合数组,而不是使用传统的循环或array_merge函数。示例代码假设有两个数组$array1和$array2,我们想将它们合并成一个新数组。在这个例子中,...$array1......
  • C++ 面向对象编程:+号运算符重载,左移运算符重载
    像+、-号进行运算符重载,过程类似,见以下代码示例:#include<iostream>#include<string>usingnamespacestd;classnumber1{   friendnumber1operator+(number1&one,number1&two);public:   number1():msg1(0),msg2(1){}   number1(intmsg1,intmsg......
  • 变量、常量、作用域、关键字、修饰符、标识符、运算符20221222
    变量、常量、作用域20241222变量◆变量是什么:就是可以变化的量!◆Java是一种强类型语言,每个变量都必须声明其类型◆Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。◆使用逗号隔开在一行定义多个同类型变量,可以但是不推荐//intdata_04=1,data......
  • 【C++】剖析运算符重载和赋值运算符重载
    -----------------------------------------------------begin------------------------------------------------------运算符重载:当运算符被用于类类型的对象时,C++语言允许我们通过运算符重载的形式指定新的含义。C++规定类类型对象使⽤运算符时,必须转换成调用对应运......
  • 7. 重载和重写的区别
    重写(Override)子类把父类本身有的方法重写一遍,子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的中的某个方法,所以在方法名、参数列表、返回类型都相同的情况下,对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修改权限不能少于父类的。publicclassF......
  • Golang学习历程【第四篇 运算符&流程控制】
    Golang学习历程【第四篇运算符&流程控制】1.运算符1.1算术运算符1.2关系运算符1.3逻辑运算符1.4赋值运算符1.5其他运算符2.二进制运算3.流程控制3.1条件表达式if3.2for循环3.3forrange(键值循环)3.4switch...case3.5break,continue,goto1.运算符1.......
  • C#知识整理-运算符
    运算符C#提供了许多运算符。其中许多都受到内置类型的支持,可用于对这些类型的值执行基本操作。这些运算符包括以下组:算术运算符比较运算符布尔逻辑运算符位运算符和移位运算符相等运算符 算数运算符以下运算符堆数值类型进行算数运算:++(增量)、--(减量)、+(加)、-(减)、......