草庐IT

non-null

全部标签

c++ - Qt; QWidget 移除和删除。 setParent(NULL) 有必要吗?

我一直在阅读Qwidgets的所有权并删除它们。例如:http://qt-project.org/doc/qt-4.8/objecttrees.html这表示“您也可以自己删除子对象,它们将从父对象中删除自己”然而,我看到的很多示例在删除之前将父级设置为null。例如:if(widget!=NULL){layout->removeWidget(widget);widget->setParent(NULL);deletewidget;}是否需要setParent(NULL);?从这里开始,有什么理由让我不能只做一个deletelayout->itemAt(i);或deletelayout

c++ - 来自 Voronoi 的 Delaunay boost : missing triangle with non-integral point coordinates

遵循这两个资源:BoostbasictutorialSOQuestion我用boost写了一个Delaunay三角剖分。如果点坐标是完整的(我生成了几个随机测试并且我没有观察到错误),它工作正常。但是,如果这些点不是整数,我会发现许多不正确的三角剖分缺少边缘或错误的边缘。例如这张图片是用四舍五入的值构建的并且是正确的(见下面的代码)但是这个图像是用原始值构建的并且是不正确的(见下面的代码)这段代码重现了这两个例子(没有显示)。#includeusingboost::polygon::voronoi_builder;usingboost::polygon::voronoi_diagram

c++ - "Socket operation on non-socket"错误由于奇怪的语法

我在调用connect时在我的一些网络代码中遇到错误Socketoperationonnon-socket并花了很多时间试图找出导致的原因它。我终于发现是以下代码行导致了问题:if((sockfd=socket(ai->ai_family,ai->ai_socktype,ai->ai_protocol)看到问题了吗?该行应该如下所示:if((sockfd=socket(ai->ai_family,ai->ai_socktype,ai->ai_protocol))我不明白的是为什么第一行不正确的行没有产生警告。换句话说,一般形式不应该:if(foo=bar()编译器看起来很奇怪,尤其是使

c++ - 具有静态存储持续时间的对象中未初始化的指针是否初始化为 NULL 或全零?

出于好奇,也因为我手头没有标准拷贝:如果空指针不是由全零模式表示的实现,具有静态存储持续时间的对象的未初始化指针成员将被初始化为正确的空指针值,还是初始化为全零值?更少的标准语言,更多的代码:structfoo{void*p;};foof;给定0x00000001的NULL指针表示,对于main()开头的f.p的按位表示,我能期待什么? 最佳答案 标准说(8.5/4):Tozero-initializeanobjectoftypeTmeans:—ifTisascalartype,theobjectissettothevalue0(z

c++ - "non-const lvalue reference to type cannot bind"引用错误(类型&)但指针错误(类型*)

我收到此错误“输入‘Cell’的非常量左值无法使用此代码绑定(bind)到‘Cell*’类型的临时对象:classRegionHolder{public:RegionHolder(Region&Region1):m_RegionCellNOO(&(Region1.m_NOO))~RegionHolder();protected:Cell&m_RegionCellNOO;//differenceishere};但不是这个:classRegionHolder{public:RegionHolder(Region&Region1):m_RegionCellNOO(&(Region1.m_NO

当我双击WPF DataGrid行以获取单元格值时,返回null

我在我的代码中遇到此错误MouseDoubleClick事件。错误:System.NullReferenceException:“对象引用未设置为对象的实例。”这是我的C#代码privatevoiddtgTarafAvval_MouseDoubleClick(objectsender,ouseButtonEventArgse){TarafeynQarardadDTOt=dtgTarafAvval.SelectedItemasTarafeynQarardadDTO;inttarafeynID=t.TarafeynQarardadID;}看答案在检索单元素内容之前,您可能需要检查当前所选计数是否不

c++ - 全局函数和不明确的参数 NULL 与 char* 在 vs 2013 和 GCC 之间

我试图了解当前C++14标准关于解决模糊函数调用的内容,主要是因为我看到GCC4.9.1和VisualStudio2013更新3之间的差异这是代码(MS和GCC完全相同):#includeusingnamespacestd;voidf(char*str,intchars){coutVisualStudio使用默认vs标志调用f(char*,int)GCC给了我一个编译器错误:重载'f(char*&,NULL)'的调用不明确。gcc仅使用-std=c++11标志。 最佳答案 这取决于NULL的定义。MSVC将其定义为0,因此int重载

c++ - NULL 和 nullptr 比较

比较一个为NULL和另一个为nullptr的指针是否安全?这种比较总是正确的吗? 最佳答案 是的。NULL和nullptr都是“空指针常量”和Anullpointerconstantcanbeconvertedtoapointertype;theresultisthenullpointervalueofthattypeandisdistinguishablefromeveryothervalueofobjectpointerorfunctionpointertype.最后,Twonullpointervaluesofthesamet

c++ - string::capacity/reserve() 算作终止 null 吗?

从cppref对capacity()的描述来看并不明显和reserve()是否计算终止空字符。 最佳答案 标准statesthat:Inallcases,size().和size()不包括终止空值。因为有可能size()等于capacity(),在这种情况下,这意味着capacity()也不计算终止空值。请注意,在C++11及更高版本中,mystring.c_str()相当于mystring.data()相当于&mystring[0],和mystring[mystring.size()]保证是'\0'.检查这个Demo.

c++ - 如何从具有 null(0) 字符的 char 数组创建 C++ istringstream?

我有一个char数组,它在随机位置包含空字符。我尝试使用这个数组(encodedData_arr)创建一个iStringStream,如下所示,我使用此iStringStream将二进制数据(Iplimage的图像数据)插入MySQL数据库blob字段(使用MySQLConnector/C++的setBlob(istream*is)),它只存储第一个空字符之前的字符。有没有办法使用带有空字符的char数组创建iStringStream?unsignedchar*encodedData_arr=newunsignedchar[data_vector_uchar->size()];//As