訪問器和增變器有什麼不同?一個例子和解釋會很棒。訪問器和增變器方法有什麼區別?
7
A
回答
14
一種存取是用於類方法讀數據成員,而增變是用於變化數據成員的一類方法。
下面是一個例子:
class MyBar;
class Foo
{
public:
MyBar GetMyBar() const { return mMyBar; } // accessor
void SetMyBar(MyBar aMyBar) { mMyBar = aMyBar; } // mutator
private:
MyBar mMyBar;
}
它使數據成員private
(如上面的例子),並只能通過存取函數訪問這些最佳實踐。這是由於以下原因:
- 你知道它們何時被訪問(並且可以通過斷點進行調試)。
- 增變器可以驗證輸入以確保它符合某些約束條件。
- 如果您需要更改內部實現,您可以在不破壞大量外部代碼的情況下執行此操作,而只需修改訪問器/增變器引用內部數據的方式。
3
相關問題
- 1. 「訪問器方法」和「構造器」有什麼區別?
- 2. 什麼是Scala中的訪問器和增變器方法?
- 3. AST:訪問和僅使用查詢方法有什麼區別?
- 4. 通過 - >和via ::?訪問類方法有什麼區別?
- 5. 無法找到我的變量訪問器/增變器方法
- 6. 算法和方法有什麼區別
- 7. 老實說,公共變量和公共屬性訪問器有什麼區別?
- 8. 訪問器和變異器方法(Python)
- 9. 方法迭代器和視圖之間有什麼區別?
- 10. javascript超時和定時器方法有什麼區別
- 11. 方法和選擇器有什麼區別?
- 12. 使用obj-c訪問器和使用點語法有什麼區別?
- 13. 'remove'和'removeChild'方法有什麼區別?
- 14. Html.Partial和Html.Action方法有什麼區別?
- 15. browser.sleep()和browser.wait()方法有什麼區別?
- 16. 方法`toHaveBeenCalled()`和`andCalledThrough()`有什麼區別?
- 17. 'configure'和'configureGlobal'方法有什麼區別?
- 18. bcrypt()和crypt()方法有什麼區別?
- 19. GET和POST方法有什麼區別?
- 20. UrlHelper.Route和UrlHelper.Link方法有什麼區別?
- 21. nibNameOrNil和ViewDidLoad方法有什麼區別?
- 22. 方法和協議有什麼區別
- 23. sitecore中的訪問查看器和安全編輯器有什麼區別?
- 24. 這兩種訪問SharePoint模型的方法有什麼區別?
- 25. AIR和瀏覽器有什麼區別?
- 26. filterXpath和過濾器有什麼區別?
- 27. 訪問sqlite和mysql的方式有什麼區別?
- 28. 訪問說明符和訪問修飾符有什麼區別?
- 29. 自定義模型管理器方法和QuerySet方法有什麼區別?
- 30. 如何在phpDoc/javaDoc中記錄訪問器/增變器方法?
訪問器(或getter)方法允許您訪問數據結構的成員,而Mutator(或setter)方法允許您更改數據結構的值。 – Chad 2012-03-09 00:18:19