为什么这个成员函数可以访问私有向量

时间:2017-03-23 14:50:41

标签: c++ member

现在我在这里有一个我想要了解的代码片段。我认为只有朋友的功能可以访问私有成员变量,那么为什么方法' grad'能够访问' a'在这里得到它的大小?

#include <vector>

using namespace std;

class Polynom{
  private:
    vector<double> a;

  public:
    Polynom(const vector<double>& v): a(v) {}

    int grad() { return a.size()-1; }
};

int main()
  {
    return 0;
  }

1 个答案:

答案 0 :(得分:0)

问问自己,如果私人会员访问取消了其他同类课程的资格,私人领域的重点是什么?你声明一个潜在的复杂对象,然后字面上无法对它做任何事情?您有一个可以与自身交互的私有区域,但这对任何面向公众的功能都没有任何影响?您使用私有结构作为中间人来写入您随后使用的公共字段?这些场景都没有那么有意义。访问修饰符保护类免受外部影响,但OOP模型假定程序员将在类中自己处理。    值得注意的是,有一种情况是无法访问私有成员:继承。基类私有变量存在于派生类中,但不能直接引用。需要明确的是,这些是基类&#39;私有变量。子类具有自己的私有范围,可以在其中声明并正常访问。