C++ 类的const static成员运行时初始化

全局变量、文件域中的静态变量、类中的成员静态变量在main函数执行前初始化;局部变量中的静态变量在第一次调用时初始化

C和C++的区别:局部静态变量:

在C语言中是编译期初始化并分配内存,故不能用变量给静态局部变量赋值,只能用常量。

在C++中是第一次执行时初始化,因为C++引入了对象的概念,对象一般需要构造函数,无法简单的分配内存,故可以用变量赋值,并且在第一次使用时初始化。

C++中是动态初始化(运行期)(main函数前,局部静态变量除外)

C++: 全局变量和static变量初始化问题

https://wandbox.org/permlink/ZegttJnxAxsZBI9Q

 
喜欢 0
分享