stringstream object()和object之间有什么区别?

Bła*_*żej 3 c++

在我的计划中,我有

stringstream strumien(); //1
stringstream strumien;  // 2
strumien<<"napis "<<8<<endl;
Run Code Online (Sandbox Code Playgroud)

并且第一行生成以下错误

类型'std :: stringstream(){aka std :: basic_stringstream()}'和'const char [7]'到二进制'operator <<'的无效操作数

但第二个工作正常.(当然总是其中一个被评论出来)
那么它们之间的区别是什么?因为我一直认为它们是对象的相同定义.

Die*_*ühl 8

看起来像函数声明的东西函数声明.那是

T name();
Run Code Online (Sandbox Code Playgroud)

声明一个名为name不带参数并返回a 的函数T.这被称为令人烦恼的解析.有两个可能的修复方法可以避免这个问题:关闭括号或使用C++ 2011"统一初始化"(这是一个用词不当):

T name{};
Run Code Online (Sandbox Code Playgroud)