朋友功能无法访问私人会员

时间:2015-08-08 10:52:32

标签: c++ class friend-function

刚才我开始用OOP C ++编写。我希望在我的班级中包含代表物理学中的2D矢量的算术运算。

确定。结束offtop 我有访问私有成员表格朋友功能的问题。 我在课程块中写了朋友声明,但我还没有访问vector的私人成员,我不知道为什么。

我不明白吗?

这是一段代码:

vector2d.h:

foo

vector2d.cpp

A

视觉错误:(四个错误,但几乎相同)

  

严重级代码说明项目文件行   错误(活动)成员“nedlib :: vector2d :: x”(在“c:\ Users \ Nedziu \ Documents \ Visual Studio 2015 \ Projects \ Ned Library \ Ned Library \ vector2d.h”的第21行声明)无法访问Ned库c:\ Users \ Nedziu \ Documents \ Visual Studio 2015 \ Projects \ Ned Library \ Ned Library \ vector2d.cpp 208

1 个答案:

答案 0 :(得分:3)

您已在nedlib命名空间

中声明了您的操作符函数
    vector2d operator *(const double & real, const vector2d & vector);
    ostream & operator <<(ostream & screen, const vector2d & vector);

_NEDLIB_END // <<<<<<

因此,您必须在函数定义中限定命名空间:

vector2d nedlib::operator *(const double & real, const vector2d & vector);
      // ^^^^^^^^
using namespace nedlib;

不会影响在使用它的翻译单元中看到的定义范围。