21xrx.com
2024-11-05 18:41:33 Tuesday
登录
文章检索 我的文章 写文章
C++访问权限控制符详解
2023-07-10 21:35:48 深夜i     --     --
C++ 访问权限 控制符 详解 类成员

C++是一门面向对象的编程语言,包括了类和对象的概念。在C++中,访问权限控制符是一个非常重要的部分,能够确保对象的数据和函数的安全性,同时也增强了程序的可维护性和可读性。本文将详解访问权限控制符的使用方法。

在C++中,有三种访问权限控制符:public、private和protected。这些控制符被用于控制类中数据成员和成员函数的访问权限。其中,公有成员(public)可以被类的外部访问,私有成员(private)只能在类的内部访问,而保护成员(protected)则可以被派生类访问。

让我们看一下如何使用这些访问权限控制符。例如,我们创建了一个类People,其成员变量有姓名和年龄,成员函数有显示年龄和显示姓名两个函数。我们可以使用公有成员(public)来访问和修改这些变量,同时也可以调用这些函数。例如:


class People{

public:

  string name;

  int age;

  void show_name()

    cout << "My name is " << name << endl;

  

  void show_age()

    cout << "My age is " << age << endl;

  

};

在这个例子中,name和age是公有成员(public),show_name()和show_age()函数也是公有的,因此它们可以在类的外部被访问。例如,我们可以使用以下代码显示该对象的年龄和姓名:


People p;

p.name = "Tom";

p.age = 20;

p.show_name();

p.show_age();

与此不同的是,如果把数据成员设为私有成员(private),则只能在类的内部访问和修改数据成员。例如:


class People{

private:

  string name;

  int age;

public:

  void set_name(string n)

    name = n;

  

  void set_age(int a)

    age = a;

  

  void show_name()

    cout << "My name is " << name << endl;

  

  void show_age()

    cout << "My age is " << age << endl;

  

};

在这个例子中,我们把name和age变成了私有成员(private),因此我们不能直接使用对象访问和修改它们。相反,我们需要创建另一个公有成员(public)函数set_name()和set_age()来实现访问和修改数据成员。例如:


People p;

p.set_name("Tom");

p.set_age(20);

p.show_name();

p.show_age();

最后,如果我们把数据成员设为保护成员(protected),则可以在类的内部和派生类中访问和修改数据成员。例如:


class People{

protected:

  string name;

  int age;

public:

  void set_name(string n)

    name = n;

  

  void set_age(int a)

    age = a;

  

  void show_name()

    cout << "My name is " << name << endl;

  

  void show_age()

    cout << "My age is " << age << endl;

  

};

class Student: public People{

public:

  void show_info()

    cout << "My name is " << name << "

};

int main(){

  Student s;

  s.set_name("Tom");

  s.set_age(20);

  s.show_name();

  s.show_age();

  s.show_info();

  return 0;

}

在这个例子中,我们把name和age变成了保护成员(protected),因此Student类可以访问和修改这些成员。例如,show_info()函数就在派生类中实现了访问和修改数据成员,并且可以被对象调用。

综上所述,访问权限控制符是C++中一个非常有用的特性,可以确保对象的数据和函数的安全性,同时也增强了程序的可维护性和可读性。我们可以根据需要,选择适当的访问权限控制符来设计和编写我们的程序。

  
  

评论区

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