C++中枚举定义运算符

  由于枚举也是用户定义类型,所以是可以定义运算符, 如:

1 enum Day {sun, mon, tue, wen, thu, fri, sat};
2
3 Day& operator++(Day& d)
4 {
5     return d = (sat == d) ? sun : Day(sta + 1);
6 }

可以这样来使用:

Day today = sun;
++today; // mon
时间: 2024-10-14 00:46:58

C++中枚举定义运算符的相关文章

c#中枚举类型的定义与使用

介绍枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举.定义默认基数从O开始,也可指定数值. enum Days { Saturday=1, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday }; enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 }; 使用

看到导师的代码中枚举从0.1.2.4开始赋值,不解于是百度了一下

c#中枚举值为什么使用1,2,4,8,16,32等2的幂方 使用1,2,4,8,16,32等2的幂方,防止重复. .NET中的枚举我们一般有两种用法,一是表示唯一的元素序列,例如一周里的各天:还有就是用来表示多种复合的状态.这个时候一般需要为枚举加上[Flags]特性标记为位域,例如: [Flags]  enum Styles{  ShowBorder = 1,         //是否显示边框 ShowCaption = 2,        //是否显示标题 ShowToolbox = 4  

C++20草案中的宇宙飞船运算符(<=>,spaceship operator)

C++20草案中的宇宙飞船运算符(<=>,spaceship operator) Herb Sutter提议的新三路运算符<=>已经被合入C++20草案中. 宇宙飞船运算符(hh)形式如lhs<=>rhs. 比如a与b是整型,那么a<=>b返回std::strong_ordering类型的纯右值(prvalue,不能取地址那种): 如果a<b,(a<=>b)返回std::strong_ordering::less 如果a>b,(a&l

Java中枚举的使用

一. JDK5之前的实现方式 在枚举类型出现之前,java是通过在接口或者类中定义public static final 的变量来实现的. 比如对于四季的描述: --------------------------------------------------------------------------------- public interface Season {    public static final int SEASON_SPRINT = 1;    public stati

编写STL中没有定义的函数(如果能编译)

实例目标:本例介绍如何编写标准模板库STL中没有定义的函数.这里列举两个例子,一个是将所有数据类型转换成字符串型的to_string函数,另一个是它的"反函数"from_string函数,用来将字符串转化为某一类型 具体内容: 在std::string模板中没有包含一些函数实用性较强的,原因就是因为客户轻易编写其中的代码.例如:可以实现一个将所有数据类型转换为字符串型的to_string函数代码如下: #include<iostream> template<class

UIView的几个枚举定义

UIView是iOS开发最主要的视图,非常多控件都是继承它,掌握当中的几个基本枚举定义,有利益理解视图的载入和參数差别. 一.UIViewAnimationCurve UIView的基本动画变化规律 typedef NS_ENUM(NSInteger, UIViewAnimationCurve) { UIViewAnimationCurveEaseInOut, // 淡入淡出 UIViewAnimationCurveEaseIn, // 開始时慢 UIViewAnimationCurveEase

Java 中的instanceof 运算符

Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:result = object instanceof class参数:Result:布尔类型.Object:必选项.任意对象表达式.Class:必选项.任意已定义的对象类.说明:如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一

如何实现自己特定的内存管理,如何正确替换C++中的全局运算符new和delete

在谈下面的问题之前,请先看看写的这篇博客:new operator和operator new之间的区别 考虑下面的代码块,能运行,但是存在一些问题,我们将一一解答: #include <stdio.h> #include <iostream> using namespace std; class A { public: A() { throw exception(""); } void operator delete(void *p, size_t s) { c

Swift 中枚举

Swift 中枚举高级用法及实践 字数11017 阅读479 评论0 喜欢20 title: "Swift 中枚举高级用法及实践"date: 2015-11-20tags: [APPVENTURE]categories: [Swift 进阶]permalink: advanced-practical-enum-examples 原文链接=http://appventure.me/2015/10/17/advanced-practical-enum-examples/作者=Benedik