C++类与对象详解:成员访问限定符与封装性

需积分: 6 2 下载量 59 浏览量 更新于2024-08-24 收藏 341KB PPT 举报
【资源摘要信息】: "C++中类的成员访问限定符和类的声明与对象定义" 在C++编程语言中,类是构建面向对象程序设计的基础。类是一种自定义的数据类型,它允许我们封装数据和操作这些数据的函数。成员访问限定符在类的定义中起到关键作用,用于控制类内外对成员的访问权限。以下是关于类和成员访问限定符的详细知识: 1. **成员访问限定符** - **private**:私有成员只能在类的内部访问,外部代码无法直接访问或修改。这是为了实现信息隐蔽和封装,保护数据不被误用或恶意修改。 - **public**:公有成员可以被类内外的任何代码自由访问。通常,我们会将那些需要暴露给外部的操作(如方法)设为公有。 - **protected**:保护成员同样不能被类外部直接访问,但可以被其派生类(子类)访问。这提供了一种方式让子类扩展或修改基类的内部状态,同时保持对外部的封装。 2. **类的声明**: 类的声明定义了类的结构,包括数据成员和成员函数。声明以`class`关键字开始,接着是类名,然后是一系列的成员定义,如: ```cpp class Student { int num; char name[20]; char sex; void display(); }; ``` 在声明中,成员的访问权限默认为private,除非明确声明为public或protected。 3. **对象的定义**: 定义对象是在内存中为类创建实例的过程。例如: ```cpp Student stud1, stud2; ``` 这会在栈上创建两个`Student`类型的对象`stud1`和`stud2`,它们有自己的数据成员副本。 4. **成员函数**: 成员函数是类的一部分,负责操作类的数据成员。例如,`display`函数用于显示`Student`对象的信息。在类声明中,成员函数的定义可以放在类的内部(成员函数 inline)或外部(非inline)。 5. **封装性和信息隐蔽**: C++的封装原则鼓励将数据隐藏在类的内部,只通过公共接口(public成员函数)与外部交互。这样可以减少错误,提高代码的可维护性和安全性。 6. **简单应用举例**: 通过定义私有成员和公有成员函数,我们可以实现一个简单的`Student`类,其中`num`、`name`和`sex`是私有成员,`display`是公有成员函数,用于显示学生信息: ```cpp class Student { private: int num; char name[20]; char sex; public: void display() { cout << "num: " << num << endl; cout << "name: " << name << endl; cout << "sex: " << sex << endl; } }; Student stud1; stud1.num = 1; strcpy(stud1.name, "张三"); stud1.sex = 'M'; stud1.display(); ``` 在这个例子中,`display`是对外界提供访问`Student`对象信息的接口,而`num`、`name`和`sex`则被隐藏起来,防止直接访问。 通过理解和熟练使用这些概念,开发者可以构建出更安全、模块化且易于维护的C++程序。