C++ 初始化和定义之间的关系

C++ 初始化和定义之间的关系,c++,initialization,definition,C++,Initialization,Definition,您能解释一下对象定义如何和变量初始化绑定,表示初始化吗 #include <iostream> int a = 5; //definition int main{ std::cout << a; } #包括 INTA=5//定义 int main{std::cout来自§7/8: 定义会导致保留适当的存储量,并执行任何适当的初始化(8.5) 是的,定义会导致初始化 #include <iostream> int a = 5; //definition i

您能解释一下对象定义如何和变量初始化绑定,表示初始化吗

#include <iostream>
int a = 5; //definition

int main{ std::cout << a; }
#包括
INTA=5//定义
int main{std::cout来自§7/8:

定义会导致保留适当的存储量,并执行任何适当的初始化(8.5)

是的,定义会导致初始化

#include <iostream>
int a = 5; //definition

int main{ std::cout << a; }
但是,初始化(以及一般的对象创建)可以在没有定义的情况下进行,您的引用(§1.8/1)中省略的部分对此进行了描述:

通过定义(3.1)、新表达式(5.3.4)或 在需要时通过实施(12.2)


对象的生命周期在其初始化完成后开始。不初始化对象就无法定义对象。即使您说
int a;
,您也可以定义并初始化
a
,尽管这种特殊类型的初始化(称为“默认初始化”)不执行任何操作,使对象
a
未初始化。

感谢您提供规范性参考。