21xrx.com
2024-09-20 00:10:35 Friday
登录
文章检索 我的文章 写文章
C++中的public、private、protected关键字解析
2023-07-05 02:20:50 深夜i     --     --
C++ public private protected 解析

在C++中,public、private、protected是面向对象编程中常见的关键字。它们用于限制类中成员的访问级别,保证程序的安全性和可维护性。

public关键字表示该成员可以被任何函数或对象访问,包括类内部和类外部。通俗的说,就是公共的,大家都可以使用。比如,可以在类外部直接调用一个类中公共成员的函数或变量。

private关键字表示该成员只能在类内部访问,不能被类外部函数或对象访问。也就是说,私有的,只有自己可以使用。私有成员对于类的实现是严格保密的,除了类本身,其他代码块不能直接访问私有成员。

protected关键字与private十分相似,也是只能在类内部访问,但可以被子类继承。在继承的情况下,子类可以访问父类中的保护成员,但其他代码块仍然不能访问它们。可以认为,保护成员是受限的私有成员,只能在类和子类中使用。

下面来看一段示例代码:


#include <iostream>

using namespace std;

class Student {

public:

  string name;

  void setName(string n)

    name = n;

  

private:

  int age;

protected:

  string gender;

};

class Undergraduate : public Student {

public:

  void setGender(string g)

    gender = g;

  

};

int main()

  Student s;

  s.name = "Tom";

  s.age = 20;

  s.gender = "male";  // 错误

在上面的代码中,我们定义了一个学生类Student和一个本科生类Undergraduate。Student中有一个公共的成员name,一个私有的成员age,和一个受保护的成员gender。在Undergraduate中,我们可以直接访问从Student继承下来的gender成员,但无法访问age成员。在main函数中,我们通过Student类实例化一个s对象,但是无法访问age和gender成员,因为它们都是非公共成员。而在Undergraduate类中访问gender成员成功,因为它被声明为受保护的成员,可以被子类访问。

总之,public、private、protected关键字是面向对象编程中非常重要的概念,它们能够帮助程序员隐藏和保护一些重要的数据和方法,增加程序的可维护性和安全性。因此,在编写程序时要注意合理使用这些关键字,减少代码的耦合度,提高代码的复用性。

  
  

评论区

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