草庐IT

Initialization

全部标签

c++ - 无法将 {...} 从 <brace-enclosed initializer list> 转换为 struct

我以前使用过TDM-GCC-5.10,现在切换回4.9MINGW-GCC,尝试使用列表初始化时遇到了奇怪的错误:classVector2{public:Vector2(floatx,floaty){this->x=x;this->y=y;}floatx=0.f;floaty=0.f;};structTest{intx=0;Vector2v;};intmain(){Testtst={0,Vector2(0.0f,0.0f)};//Errorreturn0;}错误:main.cpp:Infunction'intmain()':main.cpp:21:41:error:couldnotcon

c++ - C++ 中 POD 类型的默认初始化

我知道一些POD默认情况下初始化变量,但其他变量不是。(POD类型包括int、float、指针、union、POD类型的数组、POD类型的structs等)作用域和存储类如何影响POD类型的默认初始化?具体来说,以下哪一项会被隐式初始化:具有自动存储功能的局部变量静态局部变量静态全局变量外部变量用new分配的变量类的POD成员(没有在构造函数中显式初始化)我知道存在与其中一些情况相关的问题,但并不全面(它们只针对特定情况)。 最佳答案 具有自动存储持续时间的局部变量不会自动初始化。由于使用未初始化的变量会产生未定义的行为,因此最好显

c++ - C++ 中 POD 类型的默认初始化

我知道一些POD默认情况下初始化变量,但其他变量不是。(POD类型包括int、float、指针、union、POD类型的数组、POD类型的structs等)作用域和存储类如何影响POD类型的默认初始化?具体来说,以下哪一项会被隐式初始化:具有自动存储功能的局部变量静态局部变量静态全局变量外部变量用new分配的变量类的POD成员(没有在构造函数中显式初始化)我知道存在与其中一些情况相关的问题,但并不全面(它们只针对特定情况)。 最佳答案 具有自动存储持续时间的局部变量不会自动初始化。由于使用未初始化的变量会产生未定义的行为,因此最好显

c++ - 为什么 const 变量必须立即初始化?

这是一个通用的编程问题。我正在学习C++,并且了解到任何const变量,即:constinti或int*constptr,都必须立即初始化。这也是地址引用必须立即初始化的根本原因,因为地址是const。但我找不到必须这样做的原因/为什么要强制执行此规则。谁能帮我解释一下? 最佳答案 因为您无法在以后对其进行初始化或赋值。constintsize;//noinitialization(error)size=100;//error-youcannotassignaconstvariable.现在,如果一个变量既没有任何有意义的值,也因为

c++ - 为什么 const 变量必须立即初始化?

这是一个通用的编程问题。我正在学习C++,并且了解到任何const变量,即:constinti或int*constptr,都必须立即初始化。这也是地址引用必须立即初始化的根本原因,因为地址是const。但我找不到必须这样做的原因/为什么要强制执行此规则。谁能帮我解释一下? 最佳答案 因为您无法在以后对其进行初始化或赋值。constintsize;//noinitialization(error)size=100;//error-youcannotassignaconstvariable.现在,如果一个变量既没有任何有意义的值,也因为

c++ - 为什么我的结构的成员没有使用 `{}` 正确初始化?

这个问题在这里已经有了答案:CandC++:Partialinitializationofautomaticstructure(3个回答)关闭9年前.我有以下代码:#includestructT{inta,b,c;};intmain(){Tt={0};std::coutOutput:0,0,0多年来,这段代码在关键的生产环境中愉快地运行,服务于一个重要的功能,项目的需求发生了变化,我需要输出为1,1,1.所以,我更改了{0}至{1}:#includestructT{inta,b,c;};intmain(){Tt={1};std::coutOutput:1,0,0我期待1,1,1而是。为

c++ - 为什么我的结构的成员没有使用 `{}` 正确初始化?

这个问题在这里已经有了答案:CandC++:Partialinitializationofautomaticstructure(3个回答)关闭9年前.我有以下代码:#includestructT{inta,b,c;};intmain(){Tt={0};std::coutOutput:0,0,0多年来,这段代码在关键的生产环境中愉快地运行,服务于一个重要的功能,项目的需求发生了变化,我需要输出为1,1,1.所以,我更改了{0}至{1}:#includestructT{inta,b,c;};intmain(){Tt={1};std::coutOutput:1,0,0我期待1,1,1而是。为

c++ - 在 C++ 中静态初始化匿名 union

我正在尝试在VisualStudio2010中静态初始化以下结构:structData{intx;union{constData*data;struct{intx;inty;};};};以下失败,errorC2440:'initializing':cannotconvertfrom'Data*'to'char'。staticDatad1;staticDatad={1,&d1};staticDatad2={1,{1,2}};我发现了一些可以正确初始化的方法的引用,但它们都不能在VS2010中工作。有什么想法吗? 最佳答案 ISOC++

c++ - 在 C++ 中静态初始化匿名 union

我正在尝试在VisualStudio2010中静态初始化以下结构:structData{intx;union{constData*data;struct{intx;inty;};};};以下失败,errorC2440:'initializing':cannotconvertfrom'Data*'to'char'。staticDatad1;staticDatad={1,&d1};staticDatad2={1,{1,2}};我发现了一些可以正确初始化的方法的引用,但它们都不能在VS2010中工作。有什么想法吗? 最佳答案 ISOC++

c++ - 全局内存是否在 C++ 中初始化?

全局内存是否在C++中初始化?如果有,怎么做?(第二次)澄清:当程序启动时,在初始化原语之前,内存空间中有什么将成为全局内存?我试图了解它是归零还是垃圾。情况是:可以在初始化之前通过instance()调用设置单例引用吗:MySingleton*MySingleton::_instance=NULL;然后得到两个单例实例?查看我关于单例的多个实例的C++测验... 最佳答案 来自标准:Objectswithstaticstorageduration(3.7.1)shallbezero-initialized(8.5)beforean