21xrx.com
2025-03-25 04:16:46 Tuesday
文章检索 我的文章 写文章
C++中的protected访问权限范围
2023-06-24 08:11:35 深夜i     17     0
C++ protected访问权限 访问权限范围

在C++语言中,访问权限是指成员变量和成员函数对于不同的访问者的可见性,包括public、private和protected三种访问权限。其中,protected限定符的访问权限范围介于public和private之间,它的成员可以被该类内部成员访问,也可以被其子类访问。

protected访问权限的作用主要是为了在继承中实现数据封装和数据隐藏,保护类中的成员变量免受未经授权的访问。在继承关系中,子类可以通过protected成员访问它的父类的成员,而外部类则不能访问。

需要注意的是,protected成员对于非派生类和主函数都不可见。在类中使用protected访问权限时,一般会采用getter和setter的方法实现对于类中数据的访问和操作。

下面给出一个例子:

#include <iostream>
using namespace std;
class Person {
protected:
  string name;
public:
  void setName(string n)
    name = n;
  
  void printName()
    cout << "Name: " << name << endl;
  
};
class Student : public Person {
private:
  int studentId;
public:
  void setStudentId(int id)
    studentId = id;
  
  void printStudentInfo() {
    printName();
    cout << "Student ID: " << studentId << endl;
  }
};
int main() {
  Student s;
  s.setName("Tom");
  s.setStudentId(12345);
  s.printStudentInfo();
  return 0;
}

在上面的例子中,我们定义了一个Person类和一个Student类,Student类是Person类的子类。在Person类中,我们使用了protected访问权限限定了name成员变量的访问范围,防止外部访问。在Student类中,我们通过继承的方式访问了Person类中的name变量,并且添加了一个studentId成员变量,使用了private访问权限限制了其访问范围。我们通过setter方法对name和studentId的值进行设置,然后通过printStudentInfo方法输出了学生的姓名和学号。

总之,C++语言中的protected访问权限是一种介于public和private之间的访问权限,可以在继承关系中保护类中的数据成员免受未经授权的访问。在实际应用中,我们应该根据需要合理地使用不同访问权限来保护数据的安全性和完整性。

  
  

评论区