簡體   English   中英

如何在另一個成員函數中用常量返回類型修改成員函數的返回值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM