这段代码第一个编译第二个没有什么区别。我对 C++ 很陌生。
第一个样本
list<string> str;
list<string>::iterator it;
it = str.begin();
第二个样本
list<string> str();
list<string>::iterator it;
it = str.begin();
我认为没有 parantethiss 的调用调用默认构造函数女巫与 () 变体相同。
这段代码第一个编译第二个没有什么区别。我对 C++ 很陌生。
第一个样本
list<string> str;
list<string>::iterator it;
it = str.begin();
第二个样本
list<string> str();
list<string>::iterator it;
it = str.begin();
我认为没有 parantethiss 的调用调用默认构造函数女巫与 () 变体相同。
list<string> str;
声明一个变量。
list<string> str();
声明一个不带参数的函数并返回一个list<string>
.
这通常被称为令人烦恼的解析。
list<string> str();
被视为函数原型声明。请参阅“最令人烦恼的解析”。