温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中的in-out指什么

发布时间:2021-11-25 16:31:38 来源:亿速云 阅读:319 作者:iii 栏目:大数据

本篇内容介绍了“C++中的in-out指什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

译者注:in-out指的是向函数传递输入信息的同时又从函数获取输出信息的参数。

Reason(原因)

This makes it clear to callers that the object is assumed to be modified.

向调用者明示该对象可能被修改。

Example(示例)

void update(Record& r);  // assume that update writes to r
Note(注意)

T&类型参数可以向函数传递信息也可以从函数获取信息。因此T&可以作为输入/输出参数使用。(但是如果运用不当,)它本身可能就是一个问题并且是错误的起因。

void f(string& s){    s = "New York";  // non-obvious error}
void g(){    string buffer = ".................................";    f(buffer);    // ...}

代码中函数g()的编写者向f()提供一个缓冲区用于填充,但是f()简单地替换了它(其代价稍高于简单的字符串拷贝)。如通过g()的编写者不正确地假设了buffer的大小,可能会导致非常不好的错误。

Enforcement(实施建议)

  • (Moderate) ((Foundation)) Warn about functions regarding reference to non-const parameters that do not write to them.

    (中等)((基本准则))当有函数将某引用视为非常量参数但又不去写它们的时候,报警。

    译者注:如果只是用于输入信息,应该使用传值或者const类型。

  • (Simple) ((Foundation)) Warn when a non-const parameter being passed by reference is moved.

    (简单)((基本准则))当通过引用传递的非常量参数被移动的时候报警。

    译者注:非常量参数意味着也会用于输出信息,如果内容被移动则无法继续使用。

“C++中的in-out指什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI