假设A类是B类的朋友,B类是C类的朋友,A是C或C的朋友,A的朋友,还是两者都没有?“朋友”关系可以在C++的类之间传输吗?
3
A
回答
5
不,C++中的友谊不是传递性的。
从C++ 03标准,11.4-8:
友谊既不继承也不传递的。例如:
class A {
friend class B;
int a;
};
class B {
friend class C;
};
class C {
void f(A* p)
{
p->a++;
// error: C is not a friend of A
// despite being a friend of a friend
}
};
class D : public B {
void f(A* p)
{
p->a++;
// error: D is not a friend of A
// despite being derived from a friend
}
};
1
无。见C++FAQ:
友谊是不能继承,传递,或相互
0
C++类的友谊不会以这种方式传播,所以A类就不会为C类的朋友。这就像在Facebook上,如果你的一个朋友与某人交朋友,那个人就不会自动成为你的朋友=)
相关问题
- 1. 难以设置c#“朋友”关系InternalsVisibleTo
- 2. mongoDB朋友关系
- 3. Parse.com朋友关系
- 4. 通过facebook api获取两个Facebook ID之间的关系(朋友,朋友的朋友)
- 5. C++朋友类
- 6. 朋友比较和在C++类模板的关系运算符
- 7. 当涉及多个模板类型时,是否可以缩小类和函数之间的朋友关系?
- 8. Facebook图形API:朋友之友的关系状态
- 9. MySQL关系朋友计划?
- 10. 类之间的双向1-n关系可以接受吗?
- 11. 派生类可以使用基类的朋友函数吗?
- 12. C++一个类可以包含一个类的成员,它是朋友吗?
- 13. 使用朋友类减少编译时间和依赖关系
- 14. 朋友类:继承类不是朋友吗?
- 15. 在GAE中建立朋友关系
- 16. C++:传递给非朋友的朋友函数
- 17. 有什么方法可以获取朋友或朋友的朋友的聊天数据吗?
- 18. 什么类型的数据可以在C#和C++之间传输
- 19. 是否可以使用OpenSocial获取有关朋友朋友的信息?
- 20. 我可以强制C#中名称空间之间的依赖关系吗?
- 21. 流利的NHibernate和朋友关系
- 22. 不要朋友的关系状态
- 23. 朋友功能可以创建新对象吗? C++
- 24. 朋友类目标C
- 25. 我可以在2个实体之间有多重关系吗?
- 26. 在UML中,我可以在两个类之间有两组关系吗?
- 27. 什么是朋友之间的Int.MaxValue?
- 28. 这样可以在片段之间传输数据吗?
- 29. BlackBerry虚拟商品可以在设备之间传输吗?
- 30. 可以在Web服务之间传输结果集吗?
友谊不能通过友谊或继承传递。 –
[Friend范围在C++中]的可能重复(http://stackoverflow.com/questions/437250/friend-scope-in-c) –