如何以这样的形式创建对象:ifstream in();

How to create an object in a form like this: ifstream in();

我是 C++ 初学者。我已经多次看到对象创建如下:

class_name object_name();

然后你可以引用 object_name 作为 class 的对象。 我如何在 class 中执行此操作?我应该覆盖构造函数吗?以及如何做到这一点?

这行代码可能会触发令人烦恼的(但不是 "the most vexing")解析行为:它不会被解释为变量声明,而是被解释为名为 [=11= 的函数的声明], 不带参数并返回 class_name.

类型的值

看到它发生在 GodBolt:编译器告诉你:

<source>: In function 'void foo()':
<source>:4:27: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
    4 |     class_name object_name();
      |