美文网首页
[C++]引用形参和指针形参的使用场景

[C++]引用形参和指针形参的使用场景

作者: 李若贤 | 来源:发表于2019-05-15 10:41 被阅读0次

    [C++]引用形参和指针形参的使用场景

    在设计函数时,应根据传入参数的值是否会被改变,来决定是使用引用形参还是指针形参。

    • 当传入的参数会被改变时,使用指针形参。
    • 当传入的参数不会被改变时,使用const修饰的引用形参。
    • 不应存在纯引用形参。

    以下示例来自LevelDB源码:

    // Open the database with the specified "name".
    // Stores a pointer to a heap-allocated database in *dbptr and returns
    // OK on success.
    // Stores nullptr in *dbptr and returns a non-OK status on error.
    // Caller should delete *dbptr when it is no longer needed.
    static Status Open(const Options& options, const std::string& name, DB** dbptr)
    {
        *dbptr = nullptr;
        DBImpl* impl = new DBImpl(options, dbname);
        ...
        if (s.ok()) {
        assert(impl->mem_ != nullptr);
        *dbptr = impl;
        } else {
            delete impl;
        }
        return s;
    }
    

    相关文章

      网友评论

          本文标题:[C++]引用形参和指针形参的使用场景

          本文链接:https://www.haomeiwen.com/subject/jjguaqtx.html