21xrx.com
2024-11-08 22:02:58 Friday
登录
文章检索 我的文章 写文章
C++派生类如何访问基类的私有成员?
2023-07-07 15:35:46 深夜i     --     --
C++ 派生类 访问 基类 私有成员

在C++中,派生类可以继承基类的成员,包括公有、保护和私有成员。但是,私有成员只能在基类内部访问,而不能在派生类内部访问。那么,若想访问基类的私有成员,该怎么办呢?

在C++中,我们可以使用友元或者protected继承来访问基类的私有成员。

1. 使用友元

可以在基类中将派生类声明为友元类。这样,在派生类中就可以访问基类的私有成员了。例如:


class Base

private:

 int num;

friend class Derived;

;

class Derived: public Base{

public:

 void func()

  num = 10;  //访问基类的私有成员

 

}

在这个例子中,派生类Derived被声明为基类Base的友元类,因此它可以访问Base类的私有成员num。

2. 使用protected继承

另一种访问基类私有成员的方法是使用protected继承。如下所示:


class Base

private:

 int num;

;

class Derived: protected Base{

public:

 void func()

  num = 10;  //访问基类的私有成员

 

}

在这个例子中,派生类Derived使用protected继承了基类Base,这意味着在Derived类中,Base类的所有成员都是protected的。因此,Derived类可以访问Base类的私有成员num。

总结

在C++中,派生类无法直接访问基类的私有成员。但是,我们可以通过使用友元或protected继承来访问。需要根据实际情况进行选择,比如如果只需要访问基类的某个私有成员,可以使用友元;如果需要访问多个基类私有成员,可以使用protected继承。

  
  

评论区

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