回答
最接近的Java已經以C++的朋友是默認的訪問修飾符,也稱作爲包保護或包私有。這允許僅從同一包中的其他類訪問成員。
這也是將類放在同一個包中的最佳理由,而不是根據功能分組到子包中。
在Java中沒有朋友功能的概念。最好的辦法是學習Java的如何做的知名度 - 包和私營部門(默認值),特別是可能是有趣的,你 - here's a quick tutorial
很可能你的設計有點不合適。真的不應該有一個朋友的功能需要,這就是爲什麼Java沒有包含它的語言。函數應該位於它所使用的數據所在的位置旁邊,如果不是,則應該將該數據作爲參數傳遞給該函數。在我看來,Friend函數違背了面向對象編程的主要思想。 C++傾向於允許您創建非OO程序,即使該語言完全支持OO編程相信的概念。
我會考慮修改您的設計以使功能更接近數據所在的位置,然後您真的不會有這個問題。但是,這並不總是可行的,特別是如果您正在使用遺留系統。在這種情況下,您應該考慮適配器類,getter和setter或參數。只是我的兩分錢。
friend函數是OOPs概念的缺點,因爲它用於從外部訪問類成員函數。這就是爲什麼它已從Java中刪除。
不,不是。 http://www.parashift.com/c++-faq-lite/friends-and-encap.html – Mariusz 2014-01-16 09:42:57
- 1. 在app.config中扮演
- 2. Java角色扮演遊戲
- 3. 在Safari中扮演奇怪的網站
- 4. 在Python中扮演奇怪的行跡
- 5. 在Django中扮演有趣的按鈕
- 6. Em.Controller在Ember.js中扮演什麼角色
- 7. 標籤在h2o.randomforest中扮演角色嗎?
- 8. MVC在編輯器中扮演
- 9. 如何在yii中扮演角色
- 10. 在Windows應用程序中扮演
- 11. QuickSort扮演好笑
- 12. infiniDB中的角色扮演維度?
- 13. 誰在java中調用主函數?
- 14. 在目標C中扮演什麼(用例子說明)?
- 15. 在角色扮演庫中將角色與地圖分離
- 16. C++ 0x和Friend函數和boost :: make_shared
- 17. Ansible set_fact跨越扮演
- 18. System.Diagnostics.Process扮演其他用戶
- 19. 玩角色扮演框架
- 20. 找到誰在同一部電影扮演了湯姆·漢克斯
- 21. 客觀C均扮演的音頻,因爲它正在下載
- 22. 在Java中實現Friend概念
- 23. 視頻不是在WebView中扮演的Android
- 24. 爲什麼var在R中扮演cov的角色?
- 25. NSPredicate在NSFetchedResultsController中扮演着奇怪的角色
- 26. 在IE瀏覽器中扮演奇怪的ASP.Net菜單
- 27. DBA在EF 4.1代碼優先模型中扮演的角色
- 28. CSS菜單aligntment在safari中扮演着奇怪的角色?
- 29. 主觀性在編程中扮演的角色有多大?
- 30. setInterval在webkit瀏覽器中扮演奇怪的角色
「這也是將類放在同一個包中的最佳理由」 - 你是指所有*類嗎? – 2010-01-21 20:27:56
不,當然不是。我的意思是根據功能分類的子類。那不清楚? – danben 2010-01-21 20:48:56
如果有幫助 - 我不以任何方式反對命名空間。我在討論命名空間制定之後。 – danben 2010-01-21 20:57:00