你能解释一下对象定义如何与变量初始化绑定,表示初始化。
#include <iostream>
int a = 5; //definition
int main{ std::cout << a; }
秒。 1.8 / 1:
对象由定义[...]
创建
a
已静态初始化为5
。初始化是作为对象定义的一部分发生的,还是独立于定义?
答案 0 :(得分:0)
来自§7/ 8:
定义会导致保留适当的存储量并完成任何适当的初始化(8.5)。
所以是的,定义会导致初始化。
但是,初始化(和一般的对象创建)可能是在没有定义的情况下引起的,定义由引用的省略部分(§1.8/ 1)描述:
对象由定义(3.1),new-expression(5.3.4)或 在需要时通过实施(12.2)。
答案 1 :(得分:0)
对象的生命周期在其初始化完成后开始。如果没有初始化对象,则无法定义对象。即使您说int a;
,也可以定义并初始化a
,尽管这种特殊的初始化(称为“默认初始化”)不执行任何操作,并使对象a
未初始化。