優雅地處理重複、常數和非常量Getter
身為程式設計師,我們經常遇到同時擁有const 和非const 的問題- 我們類別中getter 方法的const 版本。雖然單獨實現它們可能會導致程式碼重複,但找到解決此難題的優雅解決方案可能具有挑戰性。
挑戰
在提供的範例中,類別Foobar 需要兩種getSomething() 方法:一種非常量(Something& getSomething(int index)) 和一種const (const Something& getSomething(int index)常數)。然而,嘗試與其他方法一起實作這些方法不可避免地會導致編譯器錯誤。從 const 版本轉換為非 const 版本也是必要的罪。
優雅的解決方案
儘管絕對原始的解決方案可能不可行,但最常見的解決方案是推薦的方法是放棄其他函數中的 cons 。雖然不太美觀,但它是一種安全的技術,因為呼叫成員函數是非常量的,這意味著物件本身是非常量的,並且允許丟棄常數。
將以下程式碼片段視為範例:
在此範例中,get() 的非 const 版本會從 const 版本中丟棄 const,從而允許它修改物件本身。
以上是我們如何優雅地處理重複的 const 和非 const getter 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!