VS2013下使用友元成员函数出现问题
代码如下,定义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;
}
[解决办法]
class B
{
void test(A &a);
};
class B
{
public:
void test( A &a );
};