VS2013下使用友元成员函数出现问题

SavageHacker 2013-11-10 09:14:52
代码如下,定义B中成员函数为A的友元,但在VS2013下,编译无法通过。错误是test(A &a)无法访问
A中私有成员。我感觉是VS2013的问题,不知大神们怎么看?

#include <iostream>

using std::cout;

class A;

class B
{
void test(A &a);
};

class A
{
friend void B::test(A &);
private:
int i = 1;
};


void B::test(A &a)
{
cout << a.i;
}

int main()
{
A a;
B b;
b.test(a);
return 0;
}
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SavageHacker 2013-11-16
  • 打赏
  • 举报
回复
楼上正解,我后来也发现这个问题了。 不过,当时修改后,Visual Assist X提示还是有错误,我以为仍然不行,没有再跑一遍。。。。 今天试了下,原来可以跑。。。。 非常感谢
  • 打赏
  • 举报
回复
class B
{
    void test(A &a);
};
改为
class B
{
public:
    void test( A &a );
};

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧