作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在掌握 C++,但有一个语言特性让我特别难以理解。
我习惯于显式声明和初始化一个变量,但在 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;
?
这也是一个定义,创建 int
变量并保持未初始化状态。
你可以在不定义的情况下声明一个全局变量:
extern int myInt;
extern
表示它具有外部链接,并且在其他地方定义。其他类型的变量不能在不定义的情况下声明。
关于c++ - C++中隐式构造的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29702400/
我是一名优秀的程序员,十分优秀!