[英]How to modify the return value of a member function with constant return type within another member function?
標題似乎矛盾,也許是。 但這是我要在C ++ 11中解決的問題。我正在創建一個二進制搜索樹,搜索功能如下所示:
const node* search(char);
我已經使返回類型為常量,因為我不希望外部函數隨意更改樹(我正在返回node *以允許遍歷),但是我也在remove()
函數中使用此函數來查找要被刪除。 我希望返回的值可以通過remove()
成員函數進行修改。
顯而易見的解決方案似乎是:創建具有非常量返回類型的私有搜索功能,但這似乎不必要地延長了代碼。
還有另一種方法可以做到這一點,或者實現類似的功能嗎?
您可以輕松地執行此操作以避免代碼重復:
class foo {
public:
const node* search(char c) const { return internal_search(c); }
private:
node* internal_search(char c) const {
// actual implementation
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.