std::string str;
std::string(str);
std::string str = {};
它们是一样的吗?如果不是那有什么区别?我什么时候应该使用它们?
C++ 新手,尝试了解初始化 std::string 的不同方法。
这两个声明
std::string str;
std::string(str);
是等价的。声明符可以用括号括起来。
至于这个声明
std::string str = {};
然后要求默认构造函数是可以接受的。如果它被声明为显式(对于类
std::string
它不是显式的),那么编译器将发出错误。
这是一个会产生编译器错误的演示程序。
int main()
{
struct A
{
explicit A() = default;
};
A a = {};
}