C++编程:类中常量与枚举常量的使用
需积分: 49 20 浏览量
更新于2024-08-10
收藏 530KB PDF 举报
"类中的常量-电机与拖动基础(第三版),高清扫描版,带书签,林瑞光主编,浙江大学出版社"
在C++编程中,类中的常量是一个重要的概念,它涉及到如何在类的上下文中定义和使用常量。在标题提到的《电机与拖动基础》第三版中,作者林瑞光讨论了类中常量的使用和限制,以及如何通过枚举常量来实现全局常量。
首先,当我们希望在类内部定义一个只在该类中有效的常量时,通常会尝试使用`const`关键字修饰数据成员。然而,这样做并不意味着这个常量在整个类的生命周期内是不变的,因为每个类实例(对象)都可以有自己的`const`数据成员的副本,这些副本的值可以因对象的不同而不同。因此,`const`数据成员并不是真正意义上的全局常量。
描述中指出,`const`数据成员不能在类声明中初始化,例如:
```cpp
class A {
public:
const int SIZE = 100; // 错误,企图在类声明中初始化 const 数据成员
int array[SIZE]; // 错误,未知的 SIZE
};
```
上述代码是错误的,因为编译器在创建对象之前无法知道`SIZE`的具体值,且`array`的大小也因此无法确定。正确的做法是在类的构造函数初始化列表中初始化`const`数据成员:
```cpp
class A {
public:
A(int size);
const int SIZE;
};
A::A(int size) : SIZE(size) {
// ...
}
```
这样,每个`A`类的对象都可以拥有自己的`SIZE`值,例如`A a(100)`和`A b(200)`会有不同的`SIZE`值。
如果需要在整个类中都保持不变的常量,不应依赖`const`数据成员。此时,可以使用枚举常量(`enum`)来达到目的:
```cpp
class A {
public:
enum { SIZE1 = 100, SIZE2 = 200 }; // 枚举常量
int array1[SIZE1];
};
```
枚举常量`SIZE1`和`SIZE2`是类级别的常量,它们在类的所有实例中都具有相同的值,不会因对象的不同而改变。
这段摘要内容出自林锐博士的《高质量C++/C编程指南》v1.0,书中详细讨论了C++编程的多个方面,包括文件结构、程序的版式、命名规则、表达式和基本语句、常量、函数设计以及内存管理等。这份指南旨在提供一套高质量的编程规范,帮助开发者写出更清晰、更易于维护的C++代码。
2019-03-10 上传
2010-09-12 上传
2023-04-02 上传
2017-09-11 上传
2018-08-27 上传
2021-11-26 上传
2019-10-09 上传
2021-11-26 上传
史东来
- 粉丝: 39
- 资源: 4078
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命