今天我对朋友功能有疑问。 两个类可以有相同的朋友功能吗? 举例 friend void f1();
在A类和B类中声明。这可能吗?如果是这样,函数f1()是否可以访问两个类的成员?2个班可以分享朋友功能吗?
8
A
回答
0
对于class
的功能是否可以friends
是没有限制的,所以是的,这是没有问题的。
+0
那么,你必须能够命名这个函数,但这是一个自然的限制。例如。 'struct {static void foo(); };'或其他翻译单元中匿名命名空间中的函数。 – MSalters
14
一个例子说明这个最佳:
class B; //defined later
void add(A,B);
class A{
private:
int a;
public:
A(){
a = 100;
}
friend void add(A,B);
};
class B{
private:
int b;
public:
B(){
b = 100;
}
friend void add(A,B);
};
void add (A Aobj, B Bobj){
cout << (Aobj.a + Bobj.b);
}
main(){
A A1;
B B1;
add(A1,B1);
return 0;
}
希望这有助于!
+0
非常感谢你,我们的例子很好,很容易理解 – user2236974
+0
不客气! – iluvthee07
0
校正上述代码
#include<iostream>
using namespace std;
class B; //defined later
class A; //correction (A also need be specified)
void add(A,B);
class A{
private:
int a;
public:
A(){
a = 100;
}
friend void add(A,B);
};
class B{
private:
int b;
public:
B(){
b = 100;
}
friend void add(A,B);
};
void add (A Aobj, B Bobj){
cout << (Aobj.a + Bobj.b);
}
main(){
A A1;
B B1;
add(A1,B1);
return 0;
}
-1
#include<iostream>
using namespace std;
class first
{
friend void getdata(first object1, int i);
};
class second
{
friend void getdata(second object2, int j);
};
getdata(first object1, int i, second object2, int j)
{
cout<<i+j;
}
main()
{
first object1;
second object2;
getdata(object1, 5, object2, 7);
}
相关问题
- 1. 朋友功能可以更改班级中的私人数据吗?
- 2. 两个班可以相互交友吗?
- 3. 朋友功能可以创建新对象吗? C++
- 4. C++ - 朋友功能
- 5. 你可以用Facebook图形API查找朋友的朋友吗?
- 6. 朋友和继承功能
- 7. Facebook - 推荐朋友功能
- 8. F#朋友功能/类
- 9. 朋友功能和模板
- 10. 朋友功能问题
- 11. 我宣布部分专门的朋友班吗? - 非常困惑
- 12. 如何解锁一个Database.mdf文件,以便与朋友分享?
- 13. 我可以创建一个与班级同名的功能吗?
- 14. 如何使用朋友功能或朋友类?
- 15. 为什么这个朋友功能无法访问班级的私人成员?
- 16. Facebook照片分享给朋友的墙
- 17. 分享朋友墙的具体链接
- 18. 工作在“墙”功能,用户可以与他们的朋友分享网站内容
- 19. 有什么方法可以获取朋友或朋友的朋友的聊天数据吗?
- 20. 朋友分组
- 21. 2 AtomicReferences可以假分享?
- 22. 为朋友功能使用声明
- 23. RoR的“邀请你的朋友”功能
- 24. 选择当朋友使用功能
- 25. 朋友功能不起作用
- 26. 什么是php中的朋友功能?
- 27. Facebook oauth 2.0邀请朋友功能
- 28. iPhone:告诉朋友功能库
- 29. 对朋友功能的限制
- 30. 朋友和非成员功能困境
是的,它是可能的。是的,'f1()'可以访问这两个类的成员。 – juanchopanza
你试过编译一个简单的例子吗?这似乎很容易测试。 – Max
是什么让你觉得这不可能? – stijn