C++创建一个类的实例

C++ Creating an instance of a class?

本文关键字:一个 实例 创建 C++      更新时间:2023-10-16

可能重复:
带空括号的默认构造函数
实例化带括号还是不带括号的类?

程序:

class Foo
{
   public:
      Foo ( int bar = 1 )
      {
         cout << "bar=" << bar;
      }
};
int main() {
   cout << "0 - ";
   Foo foo_0 ( 0 ) ;
   cout << 'n';
   cout << "1 - ";
   Foo foo_1 ();
   cout << 'n';
   cout << "2 - ";
   Foo foo_4;
   cout << 'n';
   return 0;
}

输出:

0 - bar=0
1 - 
2 - bar=1

问题:为什么示例#1不起作用,而示例#0和#2起作用?

Foo foo_1 ();

是一个函数声明,没有创建任何对象。它是一个名为foo_1的函数,不接受任何参数,并返回一个Foo对象。

构造对象的正确方法是

Foo foo1;

这个概念被称为C++的烦恼解析。简短的描述是,任何可以被视为声明的东西,都是.

foo_1();换句话说,它被称为Null初始化,您必须知道对象创建和值初始化之间的区别。