vector<double> salaries();
vector<double> salaries;
我想声明一个空向量,并且上面两个声明是可能的,因为编译器没有返回任何错误。上述两个声明之间有什么区别?
答案 0 :(得分:1)
通过更新,您显示的两个声明是:
注意,(1)有时是为了与(2)做同样的事情而编写的(即使用默认的构造函数)。但这不是编译器看到它的方式 - 这通常被称为“最令人烦恼的解析”,你应该能够通过一点点搜索找到更多的信息。但是,基本上,它是语言语法中的(有意)模糊性,通过要求将特定语法视为一个函数来解决语言规范,但仍然让很多人感到惊讶。