草庐IT

初始化OpenStack

全部标签

c++ - 为什么在 C++ 中将整数初始化为 010 与将其初始化为 10 不同?

当一个整数被初始化为inta=010时,a实际上被设置为8,但是对于inta=10,a设置为10。谁能告诉我为什么inta=010的a没有设置为10? 最佳答案 因为它将010解释为octal格式的数字。在base-8系统中,数字10等于base-10(我们的标准计数系统)中的数字8。更一般地说,在C++的世界中,用0作为整数文字的前缀指定一个八进制文字,因此编译器的行为完全符合预期。 关于c++-为什么在C++中将整数初始化为010与将其初始化为10不同?,我们在StackOverfl

c++ - 使用异常抛出构造函数初始化对象的正确方法

这似乎是一个微不足道的问题,但我现在已经挂了几个小时(也许太多的Java扼杀了我的C++脑细胞)。我创建了一个具有以下构造函数的类(即没有默认构造函数)VACaptureSource::VACaptureSource(std::stringinputType,std::stringinputLocation){if(type==""||location==""){throwstd::invalid_argument("EmptytypeorlocationinVACaptureSource()");}type=inputType;location=inputLocation;//Ope

2D矢量初始化:初始化设置怪异的长度

我正在为战舰游戏创建10x10网格。我正在使用2D数组的向量模板,并且在初始化它时会遇到麻烦。当我初始化2D向量时,我正在尝试将10x10矢量的每个空间设置为'',但是由于某种原因,我将每个坐标都定为初始化为10个空间,而不是1个空间。董事会#ifndefBOARD_HPP#defineBOARD_HPP#include"ship.hpp"#includeclassBoard{private:std::vector>coordinate;Shipcarrier;Shipbattleship;Shipfloater;Shipsubmarine;Shipdestroyer;public:Board

c++ - 有没有更好的方法来初始化数组?

给定一个大小为256的数组映射,初始化它以使每个元素都为假的最佳方法是什么?boolmap[256];for(inti=0;i谢谢 最佳答案 boolmap[256]={false};编辑:有关为什么这是合法的标准引用,请参阅下面的答案。 关于c++-有没有更好的方法来初始化数组?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4059258/

c++ - VC++中未初始化的内存块

众所周知,VisualC++运行时使用特殊的非零标记标记未初始化或刚刚释放的内存块。有没有办法完全禁用此行为而无需手动将所有未初始化的内存设置为零?由于0xFEEEFEEE!=0,这对我的有效非空检查造成了严重破坏。嗯,也许我应该解释得更好一点。我创建并初始化了一个变量(通过new),一切顺利。当我释放它(通过删除)时,它将指针设置为0xFEEEFEEE而不是NULL。当我插入对NULL的正确检查时,就像所有管理自己内存的好程序一样,我遇到了问题,因为0xFEEEFEEE传递了一个NULL检查没有问题。除了在删除它们时手动将所有指针设置为NULL之外,还有什么好方法可以检测内存何时已被

c++ - 如何使用 clang 格式控制数组初始值设定项的缩进?

有时clang-format会这样做:SomeTypeVariableName[]={Thing1,Thing2,Thing3}有时clang-format会这样做:SomeTypeVariableName[]={Thing1,Thing2,Thing3}并且单个字符的变化可以使它在两者之间切换。有什么方法可以控制它的作用吗?我正在从最新的git源构建,所以最新的选项可用。 最佳答案 根据thisanswer,clang-format在某些步骤中将尽可能多的内容放在一行中,并在其上应用ColumnLimit。这可以解释行为之间的切换

c++ - 为什么初始化列表初始化需要堆分配数组的大小?

虽然我会写intn[]{1,2,3};我不会写int*m=newint[]{1,2,3};应该是int*m=newint[3]{1,2,3};这是什么原因? 最佳答案 请记住,new实际上是C++中的运算符。这是因为new操作符是如何定义的;也就是说,它需要明确地将请求的内存大小作为输入参数。因此,它不会由初始化列表成员的数量推导出来。 关于c++-为什么初始化列表初始化需要堆分配数组的大小?,我们在StackOverflow上找到一个类似的问题: https

c++ - 初始化列表中的 QString 导致访问冲突。这里出了什么问题?

在我不理解的初始化列表中使用QString时,我遇到了访问冲突。这是一个重现问题的最小示例。//fileClassA.h#pragmaonce#includestructParameter{QStringstringPar;};classClassA{QStringm_string1;public:voidfunction(Parameterpars);};A类的实现...//fileClassA.cpp#include"ClassA.h"voidClassA::function(Parameterpars){m_string1=pars.stringPar;//lastlinecal

c++ - 运算符的初始化列表和 RHS

我不明白为什么不能在运算符的RHS上使用初始化列表。考虑:classfoo{};structbar{templatebar(Tconst&...){}};foo&operator最新的Clang(还有gcc)提示:clang.cc:14:9:error:initializerlistcannotbeusedontherighthandsideofoperator'为什么C++标准会禁止这样做?或者换句话说,为什么这会失败,而不是baz? 最佳答案 事实上,C++11的最终版本不允许在二元运算符的右侧(或左侧)使用初始化列表。首先,初

c++ - MSVC 用 double 支撑初始化似乎违反了标准?

看看这个简单的程序:intmain(){floatf2=7.2;//OK,withwarningfloatf3=7.199999809265137;//OK,nowarningfloatf4{7.2};//Failsfloatf5{7.199999809265137};//OK,nowarningfloatf6={7.2};//Failsfloatf7={7.199999809265137};//OK,nowarning}当使用默认选项(cl/W4,版本19.00.23918)使用MSVC2015编译时,我收到以下消息:FloatTest.cpp(2):warningC4305:'in