gpt4 book ai didi

c++ - 如何在另一个成员函数中修改具有常量返回类型的成员函数的返回值?

转载 作者:行者123 更新时间:2023-11-30 03:31:36 25 4
gpt4 key购买 nike

标题似乎自相矛盾,也许确实如此。但这是我试图在 C++ 11 中解决的问题。我正在创建一个二叉搜索树,搜索函数如下所示:

const node* search(char);

我已将返回类型设置为常量,因为我不希望树被外部函数任意更改(我正在返回 node* 以允许遍历),但我也在 remove() 中使用此函数 函数查找要删除的节点。我希望返回值可由 remove() 成员函数修改。

显而易见的解决方案似乎是:创建一个具有非常量返回类型的私有(private)搜索函数,但这似乎不必要地延长了代码。

有没有其他方法可以做到这一点,或者实现类似的功能?

最佳答案

您可以轻松地执行此操作以避免代码重复:

class foo {
public:
const node* search(char c) const { return internal_search(c); }
private:
node* internal_search(char c) const {
// actual implementation
}
};

关于c++ - 如何在另一个成员函数中修改具有常量返回类型的成员函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com