字符串("abc")是否返回任何内容?

She*_*owu 0 c++ return

像这样:

#include <iostream>
using namespace std;
int main()
{
    if ( string( "abc" ).size() == 3 )
        cout << "equ." << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

string("abc")什么回报吗?如果是,那是值还是参考?

Leo*_*sky 9

类构造函数没有指定的返回类型,并且没有return语句.但它们确实有隐式返回类型 - 与声明它们的类相同,构造函数"返回"只是构造对象.

T()调用默认构造函数并"返回" prvalue类型的匿名T(绑定到T&&).它的生命周期是使用它的表达的生命周期.它是可以修改的.

使用示例:

int()                                           // 0
(string()+=string("123")+="abc").substr(1,3)    // "23a"
Run Code Online (Sandbox Code Playgroud)

  • 它不返回`T &&`,它返回`T`但它是一个右值.如果它返回`T &&`那么它将有一个悬空引用.您将*类型*与*值类别*混淆. (7认同)