21xrx.com
2024-09-20 00:07:12 Friday
登录
文章检索 我的文章 写文章
如何在C++子类中访问父类的私有成员
2023-07-11 05:28:27 深夜i     --     --
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成员。

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

  
  

评论区

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