C++编程:类中常量与枚举常量的使用
需积分: 49 180 浏览量
更新于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 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
史东来
- 粉丝: 43
- 资源: 4005
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫