首页 > 后端开发 > C++ > 如何在 C 中有效地实现 Const 和非 Const Getter?

如何在 C 中有效地实现 Const 和非 Const Getter?

Barbara Streisand
发布: 2024-12-02 17:43:15
原创
563 人浏览过

How Can I Efficiently Implement Both Const and Non-Const Getters in C  ?

克服重复 Getter 的 Const 难题

在同时具有 const 和非常量版本的类中实现 getter 时会出现困境。编译错误会阻碍使用另一种方法的实现。此外,从非常量版本调用常量版本是必要的。

优雅的解决方案

Effective C 提出了一种非常规但有效的解决方案:实现非-const 版本,通过从 const 版本中删除 const 来实现。虽然不美观,但这种方法保证了安全性,因为调用函数是非常量的。因此,从 const 对象中丢弃 const 是允许的。

示例:

class Foo
{
public:
    const int& get() const
    {
        // Non-trivial work
        return foo;
    }

    int& get()
    {
        return const_cast<int&>(const_cast<const Foo*>(this)->get());
    }
};
登录后复制

以上是如何在 C 中有效地实现 Const 和非 Const Getter?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板