回答
甲範圍是一個程序之內的區域內,其可以被創建並在端自動變量其中它們自動銷燬。例子是函數體或for-loop的代碼塊。
作用域可以包圍彼此和變量在外部範圍可以,或可以不通過代碼訪問在內部範圍。
例如,全球範圍包含所有其他範圍和變量在全球範圍內創建是可見所有其他範圍(根據不同的名稱解析規則)。
因此範圍也指對象的能見度,可以從程序中的一個給定的點來訪問。
有不同類型的每個範圍用自己能見度規則,例如類範圍指成員變量和成員函數到的成員函數的可見性類對象。
如需更詳細的定義見http://en.cppreference.com/w/cpp/language/scope
封裝是當你隱藏,構成了一個對象,並且只專注於對象根據其功能接口行爲的具體數據。在此C++
數據隱藏主要由標記數據作爲private
或protected
使其從結構內定義它外部訪問來實現的。
** scope **的第二個含義是:與名稱空間和類/結構體/聯合體名稱中的內容分組有關。 (也可以幫助提及隱藏*是用'private'和'protected'完成的)。 –
@TonyD是的,我試圖保持它簡單,但我更多地考慮你的評論越複雜,我意識到這個問題。我知道關於範圍的基本原則,但我不是所有細節方面的專家。 – Galik
同意 - 任何簡潔的概念介紹/概述必須忽略小細節。我真的很喜歡你的第一個剪輯,只是認爲值得指出範圍*外*函數的類型並且與自動變量無關。通過不引入第二個含義,即「還有第二個含義」,或者在前面加上「有一個編譯時名稱空間範圍感和一個運行時流控制範圍感」,你最終意味着所有陳述適用於所有範圍 - 例如第一段暗示自動變量可以放在全局和命名空間範圍內。整蠱! –
他們是相似。
範圍是關於定義對象的生命週期(鬆散地與「詞法」或代碼方面,它們被聲明的地方的邊界相關),而封裝則是控制誰可以訪問那些對象一生。
- 1. 抽象和封裝有什麼區別?
- 2. 在PHP中封裝和不封裝HTML有什麼區別?
- 3. 範圍和連接有什麼區別?
- 4. 有關範圍和封裝
- 5. 安裝Rubygems「本地」和「系統範圍」有什麼區別?
- 6. ColdFusion中THIS範圍和APPLICATION範圍有什麼區別?
- 7. C中的結構和函數範圍有什麼區別?
- 8. 有什麼區別:超出範圍和:無效?
- 9. 「初始範圍」和「需求」有什麼區別?
- 10. Perl中詞法和動態範圍界定有什麼區別?
- 11. Angular:'='和'=?'有什麼區別而在指令定義範圍
- 12. 春季請求和會話範圍有什麼區別?
- 13. 系統範圍的vimrc和用戶的vimrc有什麼區別?
- 14. ruby中的數組和範圍有什麼區別?
- 15. JPA和JDO規範有什麼區別?
- 16. 什麼區別\\。\ C:和\\。\ C:\
- 17. char [] c和char c []有什麼區別?
- 18. Managed C++和C++/CLI有什麼區別?
- 19. Visual C++和C++有什麼區別?
- 20. \ c和\\ c有什麼區別?
- 21. c#和visual c#有什麼區別?
- 22. printf中%c和%C有什麼區別?
- 23. 託管C++和C#有什麼區別?
- 24. C++和C++ CLI有什麼區別
- 25. 下載頁面上Spark的封裝類型有什麼區別?
- 26. python封裝範圍困惑
- 27. ActiveRecord保持範圍封裝
- 28. 有什麼區別C#
- 29. SqlCeConnection和SqlConnection C#有什麼區別?
- 30. Objective-C和Cocoa有什麼區別?
範圍是變量或對象所在程序中的區域。封裝確定變量和對象如何組合在一起。 –
我建議在http://programmers.stackexchange.com/ – jerseybyte
@coutocodes中發佈此問題:爲什麼? –