21xrx.com
2024-09-20 00:13:06 Friday
登录
文章检索 我的文章 写文章
C++中的公有和私有 - 了解类成员的访问控制
2023-06-26 18:01:00 深夜i     --     --
C++ 公有 私有 访问控制 “class”

C++是一门非常强大的编程语言,它不仅仅因为其高性能,而且由于其丰富的面向对象特性而广受欢迎。其中一个面向对象的特性就是访问控制。在C++中,类成员可以被设置为公有或私有的。公有成员可以在类外部访问,而私有成员只能在类内部访问。在这篇文章中,我们将深入探讨C++中的公有和私有成员的访问控制。

首先,让我们了解一下公有成员。公有成员是可以从类的任何地方(包括类的外部)访问的成员。它们是类对象的关键属性,可以通过对象访问,也可以通过指向对象的指针或引用访问。公有成员函数通常被用于类的接口,这些接口是其他程序组件(包括其他类)所使用的方法。以下是一个声明了公有成员函数的类的示例:


class MyClass {

public:

  void PublicFunction();

};

在这个示例中,函数“PublicFunction”是公有成员函数。它可以从类的外部调用,而且可以通过指向对象的指针或引用调用。例如:


MyClass obj;

  obj.PublicFunction();

接下来,我们看一下私有成员。私有成员只能从类本身或友元函数访问,不能从类的外部访问。这意味着只有在类的成员函数或友元函数中可以使用和操作私有成员。以下是一个声明了私有成员的类的示例:


class MyClass {

private:

  int PrivateVar;

  void PrivateFunction();

public:

  void PublicFunction();

};

在这个示例中,“PrivateVar”和“PrivateFunction”是私有成员。它们不能从类的外部访问。

为了从类的外部访问私有成员,可以使用公有成员函数或友元函数。以下是使用公有成员函数从类外部访问私有成员的示例:


class MyClass {

private:

  int PrivateVar;

  void PrivateFunction();

public:

  void PublicFunction();

  int GetPrivateVar() return PrivateVar;

  void SetPrivateVar(int value) PrivateVar = value;

};

在这个示例中,“GetPrivateVar”和“SetPrivateVar”是公有成员函数。它们可以从类的外部访问私有成员“PrivateVar”。例如:


MyClass obj;

  obj.SetPrivateVar(10);

  cout << "PrivateVar is: " << obj.GetPrivateVar() << endl;

最后,需要注意的是,公有成员总是可以访问私有成员,因为它们属于同一类。例如,在以下示例中,“PublicFunction”可以访问类的私有成员变量“PrivateVar”和私有成员函数“PrivateFunction”:


class MyClass {

private:

  int PrivateVar;

  void PrivateFunction();

public:

  void PublicFunction() {

   PrivateVar = 10;

   PrivateFunction();

   cout << "PrivateVar is: " << PrivateVar << endl;

  }

};

在C++中,访问控制为程序员提供了一种机制来防止对象的不良使用。在设计类时,应该好好利用访问控制来确保对象的安全性和正确性。同时,还要注意在必要时通过友元函数或公有成员函数来提供类的私有成员的访问。

  
  

评论区

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