C++面向对象:类的提前引用声明与封装性示例

需积分: 9 0 下载量 124 浏览量 更新于2024-08-19 收藏 387KB PPT 举报
本资源主要介绍了C++面向对象编程中的类和对象的概念,特别是关于提前引用声明的使用。在C++中,类是从结构发展而来的,允许在结构中定义函数,这种结构称为类。类包含数据成员(成员变量)和成员函数,提供了封装数据和行为的能力。 2.1 由结构到类的发展 在C语言中,结构体是纯粹的数据容器,而在C++中,结构体可以包含函数,也就是成员函数,这使得C++能够实现面向对象的特性。从结构体到类的转变始于让结构体拥有函数,C++因此被称为"带类的C"。类的成员可以分为数据成员和成员函数,数据成员是类的内部数据,成员函数则用于操作这些数据。 2.1.1 带函数的结构 在C++中,可以使用`struct`关键字定义一个包含成员函数的结构体,如`Point`结构体,它包含两个数据成员`x`和`y`以及两个成员函数`Set`和`Show`。成员函数可以直接操作结构体内的数据成员,实现数据的设置和显示。 2.1 封装性 封装是面向对象编程的核心概念之一,它通过限制对数据成员的直接访问来保护数据。在示例2.2中,`Point`结构体的数据成员被声明为`private`,这意味着它们不能在结构体外部直接访问。相反,数据成员的访问和修改必须通过`public`的成员函数进行,如`Set`和`Show`,这样就实现了数据的封装。 提前引用声明 在某些情况下,可能需要在正式声明类之前使用该类,这时可以使用提前引用声明。然而,提前引用声明的使用受到限制,只能用于定义指向类的指针或引用,而不能直接定义类的对象。这是因为编译器需要知道类的完整定义才能为对象分配正确的内存大小。例如,如果在类`Spouse`中直接使用未声明的`Person`类来定义成员变量`husband`和`wife`,编译器将无法确定它们的大小,导致错误。 总结: 本资源详细解释了C++中类和对象的概念,以及如何通过成员函数实现数据的封装。此外,还强调了提前引用声明的使用场景和限制,强调了在类的定义中控制数据成员访问权限的重要性,这是理解C++面向对象编程基础的关键。通过这些知识,读者可以更好地理解和编写面向对象的C++代码。