1

什么样的数据或函数更适合放在 C++ 类的保护区?这样做有什么好处?

4

3 回答 3

2

什么样的数据或函数更适合放在 C++ 类的保护区?

您希望通过继承访问的项目。

这样做有什么好处?

protected 关键字指定基类的公共和受保护成员是其派生类的受保护成员。

受保护的成员不像私有成员那样私有,私有成员只能被声明它们的类的成员访问,但它们不像公共成员那样公开,可以在任何函数中访问。派生类的任何友元或成员函数都可以访问也声明为静态的受保护成员。

未声明为静态的受保护成员只能通过派生类的指针、引用或对象访问派生类中的朋友和成员函数。

查看MSDN

于 2013-09-17T14:51:19.963 回答
0

protected几乎等同于public:任何派生类都可能使用,因此访问器集是无限的;如果需要,派生类甚至可以创建一个public直接调用基protected方法的包装器。

因此,我的建议很简单:

  • 数据应该是public或者private
  • 方法应该是publicprivate,一般来说

方法的唯一例外是构造函数、赋值运算符和析构函数可以公开,以防止基类的构造/复制/赋值/销毁,而不会阻止其子类被构造/复制/分配/销毁。

于 2013-09-17T15:15:47.167 回答
0

从该类和友元类派生的任何类都可以访问受保护的类成员。

于 2013-09-17T14:46:40.853 回答