广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++类常量和类枚举
  • 951
分享到

C++类常量和类枚举

2024-04-02 19:04:59 951人浏览 薄情痞子
摘要

目录1.类常量2.类枚举文章转自公众号:Coder梁(ID:Coder_LT) 1.类常量 有的时候, 我们希望能给类当中定义一些常量,可以给所有类的对象使用。 比如说我们在类当中

文章转自公众号:Coder梁(ID:Coder_LT)

1.类常量

有的时候, 我们希望能给类当中定义一些常量,可以给所有类的对象使用。

比如说我们在类当中定义一个数组,希望可以定义一个常量,用来初始化数组的长度。既然是用来初始化数组长度的,那么这个值自然也不会改变,我们定义成const是否可行呢?

比如这样:

class P {
    private:
     const int N=15;
     int costs[N];
    ...
}

很遗憾,这样不行,编译器会抛出一个错误:

说我们non-static变量N用的不对,看到了吧?报错信息里的描述是non-static变量,也就是说我们这里定义的N不是一个static类型的,所以不能用来初始化数组。

那怎么样才算对了呢?很简单,我们可以定义成static变量就对了。

class P {
    private:
     static const int N=15;
     int costs[N];
    ...
}

也就是在const int前面加上了static关键字,表示这是一个static即静态变量。这个常量会和其他静态变量存储在一起,而不是存储在对象里,这样的话也就被所有对象共享了。

对于像是Javapython等其他语言来说,类中的静态变量是可以通过类名直接访问的,而c++中不行。

除了定义静态变量之外,还有一种方法就是定义类枚举:

class P {
    private:
     enum {N=15};
     int costs[N];
    ...
}

这样也能运行,看起来非常不可思议。

通过这种方式声明并不会创建类数据成员,对于类的对象来说,并不包含枚举,这里的N只是一个符号名称。在类当中遇到它的时候,编译器会用15来代替。

也正是因为我们只是为了创建符号常量,而不是创建枚举类型的变量,所以不需要提供枚举名。有一些C++的类库当中也用到了这种方法,比如iOS_base::fixed等。

2.类枚举

传统的枚举类型变量存在一定的问题,最大的问题是当两个枚举定义中的枚举量重名的时候,就会发生冲突:

enum A {small, big, medium};
enum B {small, large, xlarge};

这两个枚举类型当中都有small,如果位于相同的作用于,那么就会发生冲突。

为了避免这个问题,C++11当中提供了一种新枚举,它的作用域为类,声明类似这样:

enum class A {small, big, medium};
enum class B {small, large, xlarge};

和上面的代码几乎是一样的,只不过多了一个关键字class,换成struct也是可以的。

当我们使用的时候,需要加上解析运算符:

A choice = A::small;
B c = B::large;

另外我们前面说过,常规的枚举将自动转化为整型,比如赋值给int变量或者是用于比较表达式的时候。而作用域内枚举不会隐式地转换类型。

到此这篇关于C++类常量和类枚举的文章就介绍到这了,更多相关C++类常量和类枚举内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++类常量和类枚举

本文链接: https://www.lsjlt.com/news/161470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++类常量和类枚举
    目录1.类常量2.类枚举文章转自公众号:Coder梁(ID:Coder_LT) 1.类常量 有的时候, 我们希望能给类当中定义一些常量,可以给所有类的对象使用。 比如说我们在类当中...
    99+
    2022-11-12
  • C++类常量和类枚举怎么理解
    这篇文章给大家介绍C++类常量和类枚举怎么理解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.类常量有的时候, 我们希望能给类当中定义一些常量,可以给所有类的对象使用。比如说我们在类当中定义一个数组,希望可以定义一个...
    99+
    2023-06-22
  • C#枚举类型与位域枚举Enum
    一、概述 定义一个值类型,其中包含固定值集合。枚举类型变量可以是此集合中的任意一个或多个值。 枚举使用enum关键字来声明,与类同级。 枚举本身可以有修饰符,但枚举的成员始终是公共的...
    99+
    2022-11-13
  • java怎么定义枚举常量类
    在Java中,可以使用enum关键字定义枚举常量类。 以下是定义枚举常量类的示例代码: public enum Weekday { ...
    99+
    2023-10-24
    java
  • C#枚举类型举例分析
    本篇内容主要讲解“C#枚举类型举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型举例分析”吧!C#枚举类型实例演示  using System&nb...
    99+
    2023-06-17
  • 枚举类
    当需要定义常量时,一个办法是用大写变量通过整数来定义 好处是简单,缺点是类型是int,并且仍然是变量 Enum可以把一组相关常量定义在一个class中,且class不可变,而且成员可以直接比较,这样这些相关常量就不会变化了     使用...
    99+
    2023-01-31
  • 详解Java枚举与接口常量和类常量的区别
    目录一个简单的需求接口常量类常量枚举什么是枚举枚举常量限制输入的类型枚举可以使用==来比较吗枚举实现单例一个简单的需求 在我们实际开发java项目过程中,突然有一天"领导老...
    99+
    2022-11-13
    Java枚举 接口常量 类常量 Java 枚举 Java 接口常量 Java 类常量
  • C#枚举类型怎么用
    这篇文章主要为大家展示了“C#枚举类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#枚举类型怎么用”这篇文章吧。C#枚举类型使用的时候需要掌握的有哪些方面呢?首先我们来看看一个例子:p...
    99+
    2023-06-17
  • C#枚举类型的语法
    本篇内容主要讲解“C#枚举类型的语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的语法”吧!C#枚举类型语法是什么呢?让我看看下面的讲解: usingSystem;&nb...
    99+
    2023-06-17
  • C#枚举类型的应用
    这篇文章主要讲解了“C#枚举类型的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的应用”吧!C#枚举类型应用是怎么样的呢?首先我们来看看几个问题:◆C#枚举类型与基础类型的转...
    99+
    2023-06-17
  • C# 枚举类型的声明和使用
    目录前言相关介绍一、枚举声明二、声明位置三、枚举使用总结前言 学习记录下枚举的声明和使用,枚举可用来规范开发 文章中代码的项目名为Project1,C#类名为Class1 相关介...
    99+
    2022-11-12
  • C#枚举类型怎么使用
    本篇内容介绍了“C#枚举类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#枚举,枚举是一种值类型,由许多名字的常量(也叫枚举表)...
    99+
    2023-06-17
  • TypeScript枚举类型
    目录1.概述2.数字枚举2.1反向映射3.字符串枚举4.const枚举5.总结1.概述 所谓的枚举类型就是为一组数值赋予名字。 enum类型在C++、Java语言中比较常见,Typ...
    99+
    2022-11-12
  • python枚举类型
    笔记: 一:枚举类型的定义二:枚举类和普通类的区别 1:值不可变 2:具有防止相同标签得功能,不同标签的值可以相同!三:枚举类型、枚举值、枚举名称 1:VIP.YELLOW.Value 获得标签的值 2:VIP....
    99+
    2023-01-30
    类型 python
  • 【Java】枚举类型
    文章目录 一、枚举类型1.1 什么是枚举类型1.2 Java中枚举类型的特点 二、枚举类型的使用2.1 创建语法2.2 常用方法2.3 使用案例 三、枚举的优缺点 一、枚举类型 ...
    99+
    2023-09-02
    java enum 枚举
  • c++枚举类型enum怎么使用
    在C++中,枚举类型(enum)用于定义一组具有离散值的常量。它可以用来提高代码的可读性和可维护性。以下是使用枚举类型的基本语法:`...
    99+
    2023-10-10
    c++
  • C#枚举类型的基础知识
    这篇文章主要讲解了“C#枚举类型的基础知识”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的基础知识”吧!C#枚举示例:enum WeekDay  S...
    99+
    2023-06-18
  • C#枚举类型的基础讲解
    本篇内容主要讲解“C#枚举类型的基础讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的基础讲解”吧!对于C#枚举类型不仅可以提高程序的可读性,而且可以减少因底层值发生改变而导致的程...
    99+
    2023-06-18
  • C#枚举类型的实例分析
    本篇内容主要讲解“C#枚举类型的实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的实例分析”吧!C#枚举类型实例是你学习C#枚举类型的捷径,那让我们开始吧:public&nbs...
    99+
    2023-06-17
  • C#中的枚举类型(Enum)介绍
    枚举(Enum)定义 enum关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作