21xrx.com
2025-03-29 21:01:17 Saturday
文章检索 我的文章 写文章
如何在C++子类中访问父类的私有成员
2023-07-11 05:28:27 深夜i     13     0
C++ 子类 父类 私有成员访问

在C++中,私有成员是只能被定义它们的类所访问的成员。这意味着如果一个类有一个私有成员变量或函数,那么该类的任何外部代码都不能访问这些成员。

然而,在某些情况下,我们需要在一个子类中访问父类的私有成员。虽然这看起来像一种不良的实践,但在某些特定的应用场景中是可行的。

下面是一个使用C++中子类访问父类私有成员的示例:

#include<iostream> 
using namespace std;
class ParentClass
  private:
    int privateVal = 10;
     
  public:
    int publicVal = 20;
;
class ChildClass : public ParentClass
{
  public:
    void printValues()
      cout << "Parent Class Private Value : " << ParentClass::privateVal << endl; // Access Parent Class Private Member using Scope Resolution Operator
      cout << "Parent Class Public Value : " << ParentClass::publicVal << endl; // Access Parent Class Public Member using Scope Resolution Operator
     
};
int main()
{
  ChildClass obj;
  obj.printValues();
  return 0;
}

在这个例子中,我们有一个ParentClass和ChildClass。ParentClass有一个privateVal和一个publicVal成员,而ChildClass继承了ParentClass。ChildClass中有一个printValues()函数,它使用作用域解析运算符访问了ParentClass的privateVal和publicVal成员。

通过使用作用域解析运算符,子类可以访问其父类的私有成员。虽然这可能不是一个理想的编程实践,但它在某些情况下是必要的。但是,应该注意的是,在使用父类的私有成员时,应该非常小心,因为这可能会破坏封装原则。

  
  

评论区

请求出错了