访问受保护成员的公共方法

Accessing protected member's public method

本文关键字:方法 受保护 成员 访问      更新时间:2023-10-16

假设我有一个类Permissions,它有一个公共方法change()。

class Permissions
{
public:
  change()
}

我有另一个类File,它有一个受保护的Permissions数据成员和一个公共方法getPermissions()。

class File
{
protected:
  Permissions perm;
public:
  Permissions getPermissions() { return perm; } const;
}

现在File有一个派生类Directory。我正在尝试使用getPermissions()从directory.cpp调用change()方法。

我已声明:

File *temp = new File(...);

我正在尝试调用Permissions::change(),类似于:

temp->perm.change()

但既然烫发是受保护的,我就不能那样做。如何使用getPermissions()这样的getter调用change()?

是的,应该使用类似getPermissions()的getter调用change():

temp->getPermissions().change();