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;
}
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;
}
...全文
相关推荐
友元成员函数
本程序是使用友元成员函数的一个典型例子,简单、实用,对于初学者很有帮助。
VC中关于友元的BUG解决办法
此外,对于复杂的项目,建议使用现代IDE的智能提示功能,以便及时发现和修复潜在的命名冲突或类型不匹配问题。
vs9下的c++源码
友元类则是另一个类,被声明为友元后,该类的所有成员都可以访问原类的私有和受保护成员。这种机制在设计数据库或图形用户界面类时尤其有用。
针对于C++中所需要的代码文件以及项目描述,集成在一个具体的vs2013项目中
Screen类支持光标移动与字符读取,配合Window_mgr进行多屏管理并通过友元访问私有成员
VC6.0重载友元类bug的修复
因为VC6.0中,存在的bug从而导致对友元(friend)类进行重载时出错。这段代码,为修复后的代码。当然,在VC.NET(VS2005及后继版本)中,已对此bug进行了修复。如果你是一位C/C++


