C++编程:类定义须知——封装与数据成员初始化

需积分: 0 6 下载量 149 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
在C++程序设计中,定义类是一个关键环节,它对于实现面向对象编程至关重要。谭浩强编著的《C++程序设计》课程强调了在定义类时应注意的几个重要事项: 1. **封装性与存储类型**: C++中的类具有封装特性,即隐藏内部实现细节,仅对外暴露必要的接口。因此,类中的成员数据不能使用`extern`、`auto`或`register`这样的存储类型限定符,因为这些关键字暗示了存储位置或外部访问,与类的封装原则相悖。 2. **内存分配与初始化**: 类定义仅定义了一个数据类型模板,而不是为每个实例分配存储空间。这意味着在类中声明的数据成员(如`int x=5, y=6`)不能直接初始化,因为这样会试图在类定义阶段分配内存,这是不允许的。正确的做法是在构造函数中进行初始化,或者在类体外通过构造函数的形式初始化实例。 3. **C++语言的发展与C的关系**: C++起源于C语言,由Dennis Ritchie和Brian Kernighan在1972年设计,最初用于编写UNIX操作系统。C++是对C语言的扩展和优化,引入了面向对象特性。C语言以其灵活性、高效性和可移植性受到推崇,而C++则在此基础上提供了更强大的抽象和封装能力。 4. **C语言的特点**: - 结构化:C语言支持结构化编程,简洁灵活,适用于大型系统和小型控制程序,甚至科学计算。 - 综合性:C语言结合了高级语言的易读性和低级语言的性能,支持丰富的运算符和灵活的数据结构。 - 可移植性:C程序能在不同硬件平台上几乎无需修改即可运行。 - 自由度与挑战:尽管语法结构相对宽松,对于熟练开发者提供了高度的灵活性,但对初学者来说,理解和调试C代码可能更具挑战性。 理解这些规则和历史背景有助于在C++编程中避免常见错误,确保代码符合面向对象的设计原则,提高代码质量和可维护性。在实际编程过程中,正确地定义和使用类是实现模块化、复用和扩展的关键。