+ -
当前位置:首页 → 问答吧 → 这个友元函数的使用有什么问题么??为什么报这么奇怪的错???

这个友元函数的使用有什么问题么??为什么报这么奇怪的错???

时间:2010-09-02

来源:互联网

如下:
  1.   1 #include <iostream>
  2.   2 using namespace std;
  3.   3 class B
  4.   4 {
  5.   5 private:
  6.   6     int i;
  7.   7 public:
  8.   8     B(int t):i(t){}
  9.   9     void Set(int t){i=t;}
  10. 10     void Output(){cout<<"i="<<i<<endl;}
  11. 11 friend void FreindOfB(B &b);
  12. 12 };
  13. 13
  14. 14 void FriendOfB(B &b)
  15. 15 {
  16. 16     b.i ++;
  17. 17 }
  18. 18
  19. 19 int main()
  20. 20 {
  21. 21     B b(10);
  22. 22     b.Output();
  23. 23
  24. 24     FriendOfB(b);
  25. 25     b.Output();
  26. 26     return 0;
  27. 27 }

  28. 这个代码编译报错如下: [root@s201 cpptest]# g++ Friend2.cpp -g -o fri2
  29. Friend2.cpp: In function ‘void FriendOfB(B&)’:
  30. Friend2.cpp:6: 错误:‘int B::i’ 是私有的
  31. Friend2.cpp:16: 错误:在此上下文中
  32. [root@s201 cpptest]#


  33. 难道友元函数不是这么用么????????
复制代码
友元的作用不就是访问私有成员么?为何这个代码在linux的gcc下编译不过去?????????  奇怪????????????????????

作者: glq2000   发布时间: 2010-09-02

是我自己函数名拼错了。。。。。。。。。。。。。。。
掩面逃走。。。。。。。。。

作者: glq2000   发布时间: 2010-09-02

相关阅读 更多