21xrx.com
2024-12-22 22:29:04 Sunday
登录
文章检索 我的文章 写文章
C++中如何在一个类中调用另一个类的protected成员
2023-07-05 04:20:18 深夜i     --     --
C++ 调用 protected成员 继承

在C++编程中,类与类之间经常会有相互调用成员的需求。其中,一个类想要调用另一个类的protected成员是很常见的情况。那么,如何在一个类中调用另一个类的protected成员呢?

首先,我们需要了解protected成员。protected成员是一种访问控制符,它可以让所属类及其子类访问,但禁止其他任何外部实体访问。

假设我们有两个类:类A和类B。类A中有一个protected成员变量或者函数,我们需要在类B中调用这个成员。

首先,我们需要在类B中定义一个A类型的对象,如下所示:


class A

protected:

  int num;

;

class B {

public:

  void test()

    A a;

    a.num = 100;  // 不允许

  

};

上面的代码中,我们定义了两个类A和B,其中类A中有一个protected成员变量num,而在类B中,我们定义了一个test函数,该函数要调用类A中的num成员变量。为了调用num成员变量,我们需要在类B中定义一个类A的对象,然后就可以通过对象名.成员名的方式来调用num了。

然而,上面代码中的问题是,我们无法直接访问A类的protected成员变量。这是因为,protected成员仅限于所属类及其子类访问。为了使类B能够访问类A的protected成员变量,我们可以将类B继承自类A,这样类B就成了类A的子类,从而可以访问类A中的protected成员变量了。


class B : public A {

public:

  void test()

    num = 100;  // 允许

  

};

上面的代码中,我们将类B继承自类A,并在类B中重写了test函数。由于类B是类A的子类,它可以访问类A中的protected成员变量num了,因此我们可以直接使用num变量了。

总的来说,在C++中,如果想要在一个类中访问另一个类的protected成员变量,我们需要将这个类继承自另一个类,然后通过继承链的方式来访问protected成员变量。这样,我们就能方便地实现类与类之间的相互调用了。

  
  

评论区

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