举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c运算符重载实例 C# 运算符重载

c运算符重载实例 C# 运算符重载

2023-02-24 01:18 C#教程

c运算符重载实例 C# 运算符重载

c运算符重载实例

C++中的运算符重载是指将C++中的运算符与用户定义的类型相关联,以实现特定功能的一种技术。运算符重载可以使用户定义的数据类型像内置数据类型一样使用标准运算符,从而使代码更加易读、易于理解。

下面是一个关于c++中运行时间重载的例子:

#include <iostream> 
using namespace std; 
  
class Complex 
{ 
private: 
    int real, imag; 
public: 
    Complex(int r = 0, int i =0)  {real = r;   imag = i;} 

    // 重载 + 运算符,用于两个复数相加  
    Complex operator + (Complex const &obj) { 

         Complex res; 

         res.real = real + obj.real; 

         res.imag = imag + obj.imag; 

         return res; 

    }

    void print() { cout << real << " + i" << imag << endl; } 
};  
  
int main()  
{  

    Complex c1(10, 5), c2(2, 4);  

    Complex c3 = c1 + c2; // 重载后,可以直接相加  

    c3.print(); // 输出 12 + i9  

    return 0;  
}

C# 运算符重载

C# 运算符重载

运算符可以为自定义类型重载。

以下符号运算符可以重载:


+(unary) 
-(unary) 
! 
~
++
--
+ 
-
*
/
% 
& 
|
^
<<
>> 
== 
!=
>
<
>= 
<=

以下运算符也是可重载的:隐式和显式转换true和false。

复合赋值运算符(例如,+ =,/ =)通过重写非复合运算符(例如,+,/)而隐式重写。

条件运算符&&和||通过重写按位运算符&和|隐式重写。

运算符函数

运算符通过声明运算符函数重载。

函数的名称使用运算符关键字和运算符符号指定。

运算符函数必须标记为static和public。

操作符函数的参数表示操作数。

运算符函数的返回类型表示表达式的结果。

至少一个操作数必须是声明操作符函数的类型。

在下面的示例中,我们定义一个名为Coin的结构,然后重载+运算符:


public struct Coin {
    int value;
    public Coin (int c) {
       value = c;
    }
    public static Coin operator + (Coin x, int p) {
       return new Coin (x.value + p);
    }
}

这个重载允许我们给一个Coin添加一个int:


Coin B = new Coin (2);
Coin A = B + 2;

重载赋值运算符会自动支持相应的复合赋值运算符。

在我们的示例中,由于我们覆盖+,我们也可以使用+ =:


B += 2;

注意

C#编译器强制执行要定义的逻辑对的运算符。这些运算符是(==!=),(<>)和(<=> =)。

如果你重载==和!=,你通常需要重写对象上定义的Equals和GetHashCode方法。

如果你重载(<>)和(<=> =),你应该实现IComparable和IComparable <T>。

隐式和显式转换是可重载的操作符。

阅读全文
以上是编程学为你收集整理的c运算符重载实例 C# 运算符重载全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • c#可空类型的作用 C# 可空类型

    c#可空类型的作用 C# 可空类型

    2023-02-28 C#教程

    C# 可空类型引用类型可以使用空引用表示不存在的值。值类型通常不能表示空值。例如:string s = null; // OK, Reference Typeint ...

  • c#枚举类型enum用法 C# 枚举

    c#枚举类型enum用法 C# 枚举

    2023-02-27 C#教程

    C# 枚举枚举器是值的列表上的只读,只向前的光标。枚举器是实现以下任一接口的对象:System.Collections.IEnumeratorSystem.Colle...

  • c#for循环用法 C# for 循环

    c#for循环用法 C# for 循环

    2023-02-25 C#教程

    C# for/foreach 循环C# 循环一个 for 循环是一个允许您编写一个执行特定次数的循环的重复控制结构。语法C# 中 for 循环的语法:f...

  • c#泛型方法 C# 泛型

    c#泛型方法 C# 泛型

    2023-02-24 C#教程

    C#泛型泛型类型定义包含占位符类型的模板。泛型可以提高类型安全性,减少铸件和拳击。泛型类型声明可以由泛型类型的消费者填充...

  • c语言函数传递数组 C# 传递数组给函数

    c语言函数传递数组 C# 传递数组给函数

    2023-02-27 C#教程

    C# 传递数组给函数 C# 数组在 C# 中,您可以传递数组作为函数的参数。您可以通过指定不带索引的数组名称来给函数传递一个指向数...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部