草庐IT

null_unspecified

全部标签

c++ - 如何将 NULL 指定为模板函数的指针类型参数

这显示了它的要点:#includeclassA{public:A(){}};classB{public:B(){}};typedefstd::pairABPair;intmain(intargc,char*argv[]){B*b=0;//noC2440ABPairp2(newA(),b);ABPairp1(newA(),0);//C2440return0;}有没有比强制转换更好的方法来使p1声明起作用,例如ABPairp1(newA(),(B*)NULL)?这似乎很常见,并且会有一种“正确”的方法来做到这一点......并且转换它不是正确的方法。在VS2010上,这是完整的错误:1>C

c++ - 从函数 C++ 返回 NULL 字符串

stringreceiveFromServer();此函数返回从某个服务器接收到的字符串。如果过程中出现错误(包括协议(protocol)),我想返回一个NULL字符串。但是,这在c++中不起作用(与java不同)。我试过了:stringresponse=receiveFromServer();if(response==NULL){cerr但这是不合法的。由于返回空字符串也是合法的,我可以返回什么来指示错误?谢谢! 最佳答案 您可以抛出异常来指示错误。try{std::stringresponse=receiveFromServer

c++ - 试图返回一个用 `std::unique_ptr` 构造的 `NULL`

我正在设计一个创建不同类型Foo的工厂,并且我正在尝试使用智能指针。大多数似乎都运行良好,但由于编译器的限制,我缺少一些重要的功能(即nullptr)。我有这个方法:std::unique_ptrcreateFoo(conststd::string&fooType){autoit=_registeredFoo.find(fooType);//_registeredFooisamapif(it!=_registeredFoo.end())returnstd::unique_ptr(it->second());returnstd::unique_ptr(NULL);}当我测试这个方法时,它

c++ - 将 'NULL' 分配给 boolean 数据类型是否可以接受?

将“NULL”分配给boolean数据类型是否可以接受? 最佳答案 从理论上讲,是的。但这是一件可怕的事情。NULL是一个空指针常量,分配给一个指针以使其指向任何内容。...ptr=NULL;//nowitpointstonoobjectanymore...//orptr==0if(ptr==NULL){...}如果您对任何情况感兴趣,这里是对标准的引用。首先,空指针常量是(4.10/1)Anullpointerconstantisanintegralconstantexpression(5.19)rvalueofintegerty

c++ - 在应该返回 vector 的函数中返回 NULL

我有一个带有以下header的函数:std::vectorMySewer::createCuttingArray(MyCloth**cloth,NxU32startPoint,NxU32endPoint)该函数应该返回一个包含一些整数值的vector。但是有一个问题:如果该行未正确创建(有一种方法可以发生这种情况),我想做一些类似于我在Java和C#中所做的事情,以返回NULL。但据我所知,在C++中,NULL被定义为一个整数值。如何为vector返回有效的NULL? 最佳答案 处理这个问题的“正确”方法实际上取决于接收vector

c++ - 有没有办法返回 null 而不是自定义对象(不是指针)?

有没有一种方法可以在不使用指针或引用的情况下完成我想做的事情?代码如下:NodegetSmallest(){if(openList.empty())return0;//syntaxerror//someothercode} 最佳答案 您可以使用boost::optional返回可选值。或者等待C++14并使用std::optional。 关于c++-有没有办法返回null而不是自定义对象(不是指针)?,我们在StackOverflow上找到一个类似的问题: h

c++ - 为什么 NULL 被转换成 string*?

我看到了下面的代码:classNullClass{public:templateoperatorT*()const{return0;}};constNullClassNULL;voidf(intx);voidf(string*p);f(NULL);//convertsNULLtostring*,thencallsf(string*)Q1>我对下面的说法有理解上的问题templateoperatorT*()const{return0;}具体来说,operatorT*()是什么意思?Q2>为什么f(NULL)最终触发了f(string*)?谢谢 最佳答案

c++ - 在 std vector 中查找 NULL 指针

我正在使用vector,有时会有NULL条目;我想删除给定vector中出现的所有NULL。到目前为止,我的方法不起作用:for(inti=sent_flit_list->size()-1;i>=0;i--)if(sent_flit_list[i]==NULL)sent_flit_list->erase(sent_flit_list[i]);for(inti=sent_pkt_list->size()-1;i>=0;i--)if(sent_pkt_list[i]==NULL)sent_pkt_list->erase(sent_pkt_list[i]);在哪里vector*sent_fl

c++ - 在 C++ 中, 'Node' 是一个类, 'node' 是 'Node' 的实例。为什么 "*node = nullptr "是错误的,而 "*node = NULL"是正确的?

Node*node;*node=nullptr;报错:error:noviableoverloaded'='*node=nullptr;但是Node*node;*node=NULL;是正确的吗? 最佳答案 NULL很可能是一个旧的宏,继承自C世界,并定义为0。那么在第二种情况下发生的事情是将数字0分配给Node类型的变量。而在第一种情况下,分配了一个指针(nullptr)。编译器肯定知道这是错误的,因为*node不是指针。这意味着它会提示。它是否会提示将数字0分配给Node将取决于Node的赋值运算符是否已过载以接受数字。或者是否存

C++:在删除时检查 NULL

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:TestforvoidpointerinC++beforedeleting代码片段1是否等同于代码片段2?//Snippet1:deleterecord;record=newRecord;//Snippet2if(record!=NULL){deleterecord;record=NULL;}record=newRecord;