【发布时间】:2016-06-08 11:19:02
【问题描述】:
我创建了两个类 A 和 B,其中 B 继承自类 A。如您所见,我在类 A 中有一个向量,该向量当前位于该类的受保护部分下。我不确定使用 protected 是否是不好的做法?
#include <vector>
class A
{
public :
A();
protected:
std::vector <std::string> a;
};
class B : A
{
public :
B();
void accessVector()
{
a.size();
}
private:
};
【问题讨论】:
-
完全取决于您的设计,这有时是完全有效和有用的。
protected关键字的存在是有原因的。 -
“我不确定使用受保护的做法是否不好?” 是否不好取决于(语义)上下文。
-
一般情况下,当您不希望类(基类或派生类)的对象/实例访问这些成员时,您可以保护成员。但这在朋友班的情况下会被打破。
标签: c++ class inheritance base