您可以在C ++中返回字符串对象的局部变量吗?

用户名

我在某处找到了以下代码,我想知道它在C ++中是否合法。ret变量是堆栈变量,一旦foo返回,分配给ret的内存就不再存在。但是string是一个类,我认为复制构造函数被调用以将ret的内容复制到var。这是真的?以下代码有效吗?

    string foo(int x)
    {
        string ret; 
        //some operation on ret

        return ret; 
    }
    string callingFunc()
   {
        string var = foo(2); 
        // some operation on var
   }
塞巴斯蒂安·霍夫曼

是的

实际上构造了3个对象:retdue string ret;由于due的临时对象return ret;,以及var根据上述返回的临时对象构造的对象

编译器可能会优化掉临时构建varret直接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以在存储其他函数返回值的函数内部创建局部变量吗?

来自分类Dev

您可以从lua修改C结构吗?

来自分类Dev

在C ++中返回局部变量

来自分类Dev

如何使用字符串搜索变量?/您可以在类中搜索变量吗?

来自分类Dev

您可以在Swift中评估字符串吗?

来自分类Dev

您可以求和mysql中的字符串吗?

来自分类Dev

在 Perl 中,您可以对整个匹配字符串使用变量吗?

来自分类Dev

可以通过移动返回局部变量吗?

来自分类Dev

您可以在C中使函数参数指向变量吗?

来自分类Dev

内联函数中的变量可以与局部变量冲突吗?

来自分类Dev

您可以在c中的函数的callong中调用函数吗

来自分类Dev

您可以在Redis c#中检索TTL吗?

来自分类Dev

您可以在C ++中定义同义词吗?

来自分类Dev

您可以确定C中的堆栈深度吗?

来自分类Dev

您可以在Linux终端中编译并运行c ++文件吗?

来自分类Dev

在C ++中,您可以让类成员成为传入的引用吗?

来自分类Dev

您可以在 C++ 中动态创建 for 循环吗?

来自分类Dev

您可以使用PyCharm的断点来更改局部变量吗?

来自分类Dev

rsyslog:您可以检查两个局部变量是否相等吗?

来自分类Dev

在C ++中返回字符串变量

来自分类Dev

您可以拆分字符串并保留拆分字符吗?

来自分类Dev

您可以解释此C ++函数定义的语法吗?

来自分类Dev

您可以在C ++中使用Java Swing吗

来自分类Dev

您可以从iOS C插件“当场”写入Unity纹理吗?

来自分类Dev

您可以解释此C ++函数定义的语法吗?

来自分类Dev

您可以在C中使用阶乘宏吗?

来自分类Dev

您可以用c + +加载包括JS和动态html在内的网页并获取呈现的DOM字符串吗?

来自分类Dev

在 C# 中,您可以将对象类型向上转换为通用“对象”的集合类型吗?

来自分类Dev

您可以将字符串中的字符添加到列表中吗?

Related 相关文章

  1. 1

    您可以在存储其他函数返回值的函数内部创建局部变量吗?

  2. 2

    您可以从lua修改C结构吗?

  3. 3

    在C ++中返回局部变量

  4. 4

    如何使用字符串搜索变量?/您可以在类中搜索变量吗?

  5. 5

    您可以在Swift中评估字符串吗?

  6. 6

    您可以求和mysql中的字符串吗?

  7. 7

    在 Perl 中,您可以对整个匹配字符串使用变量吗?

  8. 8

    可以通过移动返回局部变量吗?

  9. 9

    您可以在C中使函数参数指向变量吗?

  10. 10

    内联函数中的变量可以与局部变量冲突吗?

  11. 11

    您可以在c中的函数的callong中调用函数吗

  12. 12

    您可以在Redis c#中检索TTL吗?

  13. 13

    您可以在C ++中定义同义词吗?

  14. 14

    您可以确定C中的堆栈深度吗?

  15. 15

    您可以在Linux终端中编译并运行c ++文件吗?

  16. 16

    在C ++中,您可以让类成员成为传入的引用吗?

  17. 17

    您可以在 C++ 中动态创建 for 循环吗?

  18. 18

    您可以使用PyCharm的断点来更改局部变量吗?

  19. 19

    rsyslog:您可以检查两个局部变量是否相等吗?

  20. 20

    在C ++中返回字符串变量

  21. 21

    您可以拆分字符串并保留拆分字符吗?

  22. 22

    您可以解释此C ++函数定义的语法吗?

  23. 23

    您可以在C ++中使用Java Swing吗

  24. 24

    您可以从iOS C插件“当场”写入Unity纹理吗?

  25. 25

    您可以解释此C ++函数定义的语法吗?

  26. 26

    您可以在C中使用阶乘宏吗?

  27. 27

    您可以用c + +加载包括JS和动态html在内的网页并获取呈现的DOM字符串吗?

  28. 28

    在 C# 中,您可以将对象类型向上转换为通用“对象”的集合类型吗?

  29. 29

    您可以将字符串中的字符添加到列表中吗?

热门标签

归档