21xrx.com
2024-09-20 05:33:19 Friday
登录
文章检索 我的文章 写文章
C++中的三种访问权限
2023-06-30 09:33:39 深夜i     --     --
C++ 访问权限 三种

C++是一种面向对象的编程语言,其中封装是面向对象的重要特性之一。在C++中,访问权限是实现封装的关键之一。C++中有三种不同的访问权限,即public、private和protected。本文将重点介绍三种访问权限。

1. public访问权限

public是最常用的访问权限。如果一个成员被声明成public,那么它可以在任何地方被访问,包括对象的内部和外部。public成员可以被派生类和同一类的成员函数访问。

下面是一个简单的例子,展示了如何在C++中定义和使用public成员:


class Employee {

public:

  string name;

  int age;

  void display() {

    cout << "Name: " << name << "\nAge: " << age;

  }

};

int main() {

  Employee e;

  e.name = "John";

  e.age = 40;

  e.display(); //Output: Name: John Age: 40

  return 0;

}

在这个例子中,我们定义了一个Employee类,并声明了两个public成员变量name和age。我们还定义了一个display()方法,它能够显示员工的名字和年龄。在main函数中,我们创建了一个Employee对象e,并设置了它的name和age属性。最后,我们调用了display()方法来显示这个对象的属性。

2. private访问权限

如果一个成员被声明为private,那么它只能在类的内部被访问。不能在类的外部或派生类中使用。这种访问权限提供了更好的封装,使类的内部信息不被任意访问。

下面是一个简单的例子,展示了如何在C++中定义和使用private成员:


class Employee {

private:

  string name;

  int age;

public:

  void setName(string n)

    name = n;

  

  void setAge(int a)

    age = a;

  

  void display() {

    cout << "Name: " << name << "\nAge: " << age;

  }

};

int main() {

  Employee e;

  e.setName("John");

  e.setAge(40);

  e.display(); //Output: Name: John Age: 40

  return 0;

}

在这个例子中,我们定义了一个Employee类,并声明了两个private成员变量name和age。我们还定义了两个公共setter方法setName()和setAge(),这样可以在类的外部设置这些变量的值。最后,我们定义了一个display()方法,以显示这些私有成员变量的值。在main函数中,我们创建一个Employee对象e,并使用setName()和setAge()方法设置它的属性。最后,我们调用了display()方法来显示这个对象的属性。

3. protected访问权限

protected访问权限很类似于private,但它允许派生类访问基类的成员。作为继承关系的一部分,protected成员可以被访问。在类的外部,无法访问protected成员。

下面是一个简单的例子,展示了如何在C++中定义和使用protected成员:


class Base {

protected:

  int x;

public:

  void setX(int n)

    x = n;

  

};

class Derived : public Base {

public:

  void display()

    cout << "Value of x is " << x;

  

};

int main() {

  Derived d;

  d.setX(10);

  d.display(); //Output: Value of x is 10

  return 0;

}

在这个例子中,我们定义了一个Base类,并声明一个protected成员变量x。我们还定义了一个公共方法setX(),以设置这个成员变量的值。然后,我们定义了一个Derived类,它继承自Base类,并定义一个display()方法,它可以访问x成员变量。在main函数中,我们创建一个Derived对象d,并使用setX()方法设置它的属性。最后,我们调用了display()方法来显示这个对象的属性。

总结

访问权限是实现封装的关键之一。在C++中,public、private和protected是三种不同的访问权限。公共成员可以在任何地方被访问,私有成员只能在类的内部访问,受保护的成员可以被派生类访问。正确地使用这些访问权限可以提高代码的安全性,并确保对数据的正确访问。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复