【发布时间】:2017-08-16 05:09:34
【问题描述】:
现在我在这里有一个我想要理解的代码 sn-p。我以为只有友元函数才能访问私有成员变量,那为什么'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;
}
【问题讨论】:
-
grad函数属于Polynom类。类的成员函数可以访问同一个类的私有变量。
-
一个类的所有成员都可以访问该类的所有其他成员。
-
实际上,
private主要存在于这个用例中:限制对其他成员函数的访问。friend只是将其扩展到非成员函数的构造。 -
你应该更仔细地阅读你的 C++ 书籍,这是一个非常基本的概念。
-
你们班没有C++教材?这太可怕了。 Here, pick one.