我习惯于明确声明和初始化一个变量,但在c中,我们有时似乎声明并隐式地构造一个变量.
例如在这个代码片段中,rdev似乎是隐式构造的(因为它随后用于构造一个default_random_engine);
random_device rdev; default_random_engine gen(rdev());
有人可以解释这里发生了什么吗?除了简单的声明,如int myInt; ?
Can someone explain what’s going on here? How can I tell this apart from a simple declaration such as int myInt;
它们都是简单的定义.
唯一的区别是类型的属性. random_device需要构建,所以它是. int,但是人们哭得太多了,所以不是.坦白说,int的行为更像是一个你所想要的语言缺陷.
最终,这是类型而不是定义的属性.