慕课网 4.3重载运算符

重载运算符

1、什么是重载运算符

利用现有的(不能创造新的运算符)某种运算符,针对自定义类(预定义类型和现有运算符的运算含义是确定的)或者结构,定义某种运算符(比如公狗狗+母狗狗=新生狗狗)。

2、重载运算符的原因

利用现有运算符,简化自定义类型的操作。做好是,该运算符和该操作,具有一定相关性。

3、语法细节

例如公狗狗+母狗狗=新生狗狗

public static Dog operator +(Dog male,Dog female)

{

···

}

4、那些运算符可以重载

一元运算符:+、-、!、~、++、- -、true、false(操作数必须是类和结构)

二元运算符:+、-、*、%、&、|!、^、<<、>>、= =、!=、>、<、>=、<=(两个操作数至少有一个表示类或者结构)

不能重载:=、&&、||、[](索引操作)、()等

5、重载运算符不能做什么

创造新运算符

改变运算符语法

重定义运算符如何处理预定义类型

改变运算符的优先级和结合性

6、重在运算符举例

···

public void ShowAge()

{

Console.WriteLine("Age="+_age);

}

···

//重载自增操作,针对宠物的年龄

public static Pet opertor ++(Pet pet)//返回值为Pet类型,参数为宠物自身。所有的重载方法都需要public static修饰

{

++pet._age;

return pet;

}

··· 

Dog dog=new Dog("Jack");

dog._age=2;

dog++;

dog.ShowAge();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++运算符重载-上篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 2,330评论 0 51
  • C++运算符重载-下篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 1,485评论 0 49
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,806评论 18 399
  • 午后,阳光正好。 纵使生活有一些不如意 但很多美好的东西依然存在 比如阳光,比如清风 趁着周末好时光 拾起彩铅 画个小画
    一只书虫阅读 316评论 0 0
  • 虽然自己不是一个强大的人 却依旧想要保护她 她 一个脆弱敏感 甚至有些小心翼翼的一个人 好像谁都能走进她的...
    张柔柔柔柔柔阅读 227评论 0 0