c++ - std::string 如何构造一个名称作为其构造函数参数的对象?

标签 c++

<分区>

#include <string>          
#include <iostream>        

std::string(foo);          

int main()                 
{                          
    std::cout << foo.size() << "\n";                                                
    return 0;              
}                          

结果为 0,而不是 foo 未定义的预期编译错误。

它是如何做到这一点的?这个叫什么?

最佳答案

std::string(foo);  //#1        

相同
std::string (foo); //#2         

相同
std::string foo; //#3          

#2 中的括号是多余的。 #1 中需要它们,因为没有空格分隔 std::stringfoo

关于c++ - std::string 如何构造一个名称作为其构造函数参数的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54764524/

相关文章:

java - C++ NDK 中的 "jobject"和 "jclass"有什么区别

c++ - 有人能给我提供一个设置和检索 unique_ptr 的简单示例吗

c++ - OpenCV 前景检测速度慢

c++ - 最大堆实现

c++ - 禁用关于 "underscore-prefixed user-defined literals"的 GCC 警告

java - 英特尔 MKL 和 JNI : How to add a shared library that ld searches symbols from?

c++ - 在 C++ 中创建对象,如果已经构造了怎么办?

c++ - 重载 * 乘法运算符两次作为成员函数?

c++ - 使用套接字,发出通信结束信号的最佳做法是什么?

c++ - 写入文件时如何删除最后一个逗号