自定义数据类型,操作符重载实例

自定义数据类型,操作符重载实例。

以下创建一个基本的货币类型Currency,USD类为Currency的子类,并进行操作符重载,可以与特别类型进行基本的加减乘除操作。

  /// <summary>
 /// 货币类型基类
 /// </summary>
 public class Currency
 {
 //货币实际数值
 public decimal price { get; set; }
 public Currency(decimal value)
 {
 price = value;
 }
 //重载ToString方法
 public override string ToString()
 {
 return price.ToString();
 }
 }
 public class USD : Currency
 {
 //继承基类构造函数
 public USD(decimal value) : base(value) { }
 /// <summary>
 /// 此方法重载=号,可以直接使用=号赋值
 /// </summary>
 /// <param name="value"></param>
 /// <returns>返回USD货币类型</returns>
 public static implicit operator USD(decimal value)
 {
 return new USD(value);
 }
 /// <summary>
 /// 重载+号,同货币可以相加
 /// </summary>
 /// <param name="usd"></param>
 /// <param name="other"></param>
 /// <returns>返回USD货币类型</returns>
 public static USD operator +(USD usd, USD other)
 {
 return new USD(usd.price + other.price);
 }
 /// <summary>
 /// 重载-号,同货币可以相减
 /// </summary>
 /// <param name="usd"></param>
 /// <param name="other"></param>
 /// <returns>返回USD货币类型</returns>
 public static USD operator -(USD usd, USD other)
 {
 return new USD(usd.price - other.price);
 }
 /// <summary>
 /// 重载*号,可以同decimal类型相乘
 /// </summary>
 /// <param name="usd"></param>
 /// <param name="other"></param>
 /// <returns>返回USD货币类型</returns>
 public static USD operator *(USD usd,decimal other)
 {
 return new USD(usd.price * other);
 }
 /// <summary>
 /// 重载/号,可以同decimal类型相除
 /// </summary>
 /// <param name="usd"></param>
 /// <param name="other"></param>
 /// <returns>返回USD货币类型</returns>
 public static USD operator /(USD usd, decimal other)
 {
 return new USD(usd.price * other);
 }
 }
Nuvoton OpenTitan开源安全芯片技术解析与应用 硬件安全模块(HSM)作为可信计算基的核心组件,其设计透明度和可验证性正成为行业焦点。RISC-V架构凭借开源特性,为构建可审计的安全芯片提供了新范式。OpenTitan项目通过开放Verilog源码和形式化证明,实现了从物理不可克隆函数(PUF)到分层安全启动的全栈透明。该方案在lowRISC Voyager开发板上实测显示,安全启动时间小于200ms,性能损耗仅7%,显著优于传统黑盒方案。目前该技术已应用于Chromebook和数据中心,其40nm工艺版本更将功耗降至5μA待机水平,为物联网和边缘计算提 阅读详情

相关推荐

PFC胶结模型实战:从线性到平行粘结的力学行为解析

本文深入解析了PFC中线性接触与平行粘结(pb模型)的核心差异与应用。平行粘结模型通过模拟胶结层的力学行为,能够有效传递拉力和抵抗弯矩,是模拟岩石、混凝土等胶结材料的关键。文章详细介绍了其变形与强度参数的设置、法向与切向行为的验证方法,并揭示了全量与增量力计算中易出现的“幽灵力”问题及其解决方案,为复杂模型的构建与调试提供了实用策略。

weixin_29230773的博客 1216

自定义数据类型,操作符重载实例[C#]

自定义数据类型,操作符重载实例。 以下创建一个基本的货币类型Currency,USD类为Currency的子类,并进行操作符重载,可以与特别类型进行基本的加减乘除操作。 /// <summary> /// 货币类型基类 /// </summary> public class Currency { ...

weixin_30381793的博客 140

如何从零开始写小程序

看了这篇文章,即使让我现在就从头写一个能够正常运行的小程序,也没有原本想象中的那么难了。 在本文中,我们将会以一个具体的小程序为例,带领大家从零到一完成一个小程序的开发流程,并将这个小程序上传到 FinClip.com 进行小程序提审与上架操作。 我们新建了一个叫做「HelloWorld」的小程序,FIDE 在初始化小程序项目时,会自动在项目目录中补充对应所需要的项目文件。那不妨让我们先从小程序目录下的配置文件开始,逐渐揭开小程序的面纱。 使用 FIDE 编辑小程序 1. 认识 json 文件 在小程序项目

POHOU23的博客 4397

C# 自定义类重载运算符

强制转换运算符 public class Bool { public bool value; public static explicit operator bool(Bool v) { return v.value; } } Bool a; bool b = (Bool)a; 比较运算符 注意使用哈希相关的容器时需要重写HashCode public class GameTime { public int Day, Hour, Minute;

QAQ 1323

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 299

从加权最小二乘(WLS)到IAA:手把手推导DOA估计中的迭代自适应核心公式

本文深入解析了从加权最小二乘(WLS)到迭代自适应算法(IAA)在DOA估计中的数学推导与应用。通过动态调整加权矩阵,IAA在低快拍数、相干源等复杂场景中展现出卓越性能,显著提升角度分辨率和检测概率。文章详细介绍了算法核心步骤、工程优化策略及前沿发展,为雷达探测和无线通信领域提供重要参考。

weixin_30847865的博客 291

一个自定义类型的运算符重载的例子

这里只重载了“+”“-”“==”“!=”运算符。代码1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Text;56namespaceConsoleDemo.Classes7{8publicclassVector9...

weixin_30512089的博客 484

【一】PCIe基础知识

Linux PCIe基础知识

他山之石 可以攻玉 4万+

为创建的一个自定义数据类型进行运算符重载

在前面一篇文章里谈到编程语言里面只有Int,float,double等基本数据类型,而没有有理数类型,因此我们自定义了一个Rational类型(见http://blog.youkuaiyun.com/yanerhao/article/details/45009283),表示有理数,含有四则运算,比较,输出结果等成员函数,但是与常见的基本类型相比,还是显得特殊,显得格格不入。需要进一步基本化,这就是需要运算符重

yanerhao的专栏 2392

33、AI赋能5G/6G通信:LDPC码解码与强化学习技术解析

本文探讨了基于AI和强化学习的LDPC码技术在5G/6G通信中的应用。包括LAMS解码器、神经MS解码器、盲识别方法、统一极性-LDPC解码器、NNMS和SNNMS解码器、N-2D-NMS解码器、神经分层MS解码器、MAB-NS方案以及强化学习与MCTS结合的技术。这些技术在提升解码性能、降低计算复杂度和增强系统适应性方面表现出色,为未来通信系统的发展提供了强有力的支持。

lambda的博客 246

YOLOv11 改进 - 特征融合 | RepGFPN重参数化特征金字塔网络 ,实现高效多尺度特征交互与融合

本文介绍了DAMO - YOLO目标检测方法及其相关技术在YOLOv11中的结合。DAMO - YOLO扩展了多项新技术,如MAE - NAS搜索检测主干网络、Efficient - RepGFPN构建检测neck等。在neck设计上,针对原始GFPN存在的问题,提出Efficient - RepGFPN,包括对不同尺度特征使用不同通道数、删除Queen - Fusion中额外上采样操作、改进特征融合方式等。我们将相关模块集成进YOLOv11,替换部分模块。

魔改工程师的博客 937

运算符重载

C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。    运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符

Hsuxu的专栏 953

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C++中重载操作符[ ]

1.首先说说为什么要重载操作符[ ] 主要是因为系统只给了整数类型(int)的重载函数,即只能在方括号中输入整数进行查找,但有时候我们可能存放数据时,下标的类型是自定义的,希望也能像数组直接通过下标访问元素的形式(形如A[i]) ,这时候就需要对下标操作符[]进行重载,使得操作得以进行 2.重载操作符[]的作用 一般作用是取值,引用返回值是这个值得别名,引用返回是返回原来的东西,在内存上...

anna2117的博客 808

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

第一章C++对C的扩展(Externsion)--(4)操作符重载

前面用到的<<本身在c语言中是位操作中的左移运算符。现在又用用流插入运算符,这种一个字符多种用处的现像叫作重载。在c语中本身就用重载的现像,比如 & 既表示取地址,又表示位操作中的与。*既表示解引用,又表示乘法运算符。只不过c语言并没有开放重载机制。 C++提供了运算符重载机制。可以为自定义数据类型重载运算符。实现构造数据类型也可以像基本数据类型一样的运算特性。using namespace st

578

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C++操作符重载

赋值操作符赋值操作符即“=”。赋值操作符为二元操作数,其操作目的是将右操作数的值复制给左操作数。由于左值涉及到写操作,因此左值必须为非const量,而右值在赋值操作中只涉及读操作,因此一般为const量。赋值操作符通常返回左操作数的引用,这样就不需要创建和撤销运算结果的临时副本。C/C++编译器支持对内置类型(例如整形int和浮点型double)的赋值运算。字符数组(字符串)的赋值

曾梦想仗剑走天涯 2万+

操作符重载

操作符重载:   在自定义的数据类型的数据间的加减乘除操作,默认情况下编译器是不识别的,需要进行操作重载,格式如operator+(param);   但是并不是所有的运算符都是可以重载或有必要重载的!    重载规则:                   实例代码: 1 #define _CRT_SECURE_NO_WARNINGS 2 #...

weixin_30609331的博客 90

[QT]重载qdbug

【代码】[QT]重载qdbug。

qq_55948352的博客 87

32 运算符重载

自定义数据运算方法 复数加法 #include<iostream> using namespace std; class Complex { public: int a; int b; Complex(int a = 0, int b = 0) { this->a = a; this->b = b; } void printCom() { cout << a << " + " << b << "i" &lt

HowDonew 154

c++类和对象——this指针

在C++中,不仅可以对基本数据类型的函数进行重载,也可以对自定义类型(比如类)进行函数重载。常见的有对成员函数重载,以及对一些操作符重载(这也属于函数重载的一种特殊形式)。this 指针是一个隐含在类的成员函数中的指针,它指向调用该成员函数的对象。在成员函数内部,可以使用 this 指针来访问对象的成员变量和其他成员函数。2. 重载了 print 成员函数,一个无参的用于输出当前分数对象的分子分母,另一个带参数的可以输出指定的分子分母。f1.print();// 重载成员函数,根据传入的参数改变分子分母。

m0_74445123的博客 415

operator 的主要用法

1.  operator 用于类型转换函数: 类型转换函数的特征: 1)  类型转换函数定义在源类中;  2)  必须须由 operator 修饰,函数名称是目标类型名或目标类名;  3)  函数没有参数,没有返回值,但是有return 语句,在return语句中返回目标类型数据或调用目标类的构造函数。 类型转换函数主要有两类: 1)  对象向基本数据类型转换:

thinkme2010的专栏 951

C++通过类模板实现通用类型的数组函数

通用类型的模板数组定义如下 template< class T> class MyArray { public: //构造 explicit MyArray(int capacity) //防止隐式类型转换 防止MyArray arr = 10; 写法 { this->m_Capacity = capacity; this->m_Size = 0; ...

u010632547的博客 867

【lua metatable、__index __newindex是什么】

Metatable中定义的操作add, sub, mul, div, mod, pow, unm, concat, len, eq, lt, le, tostring, gc, index, newindex, call...

知至智 1376

Operator 主要用法

来自: http://blog.sina.com.cn/s/blog_507fc2360100cswi.html 推荐浅叙operator 的主要用法operator 的主要用法 (2009-04-20 21:47:49)转载▼ 标签: operator 用法 类型转换 运算符 c it 推荐浅叙operator 的主要用法 1.  operator 用于类型

zac的专栏 1390
上一篇: 浮点数的误差问题
下一篇: MongoDB 安装与启动
devgis
博客等级 码龄16年 52粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值