草庐IT

example-new

全部标签

java - 查询异常 : ResultTransformer is not allowed for 'select new' queries

我有以下SpringData存储库查询:@Query("SELECTnewcom.mypackage.MobileCaseList(c.ident,concat(c.subtype,'-',c.contactName),c.type,coalesce(c.updateTimestamp,c.insertTimestamp))"+"FROMMobileCasecWHEREc.mobileUser.ident=?1ANDc.origin='SOURCE'ORDERBYc.appointmentFromNULLSLAST")ListfindCasesForUser(StringuserIde

c++ - "new char[]"需要手动释放资源吗?

为此:m_sFilename=newchar[len+1];我应该在某个时候调用delete[]m_sFilename;吗?和:我应该使用delete[]m_sFilename还是deletem_sFilename;? 最佳答案 Does"newchar[]"needtobereleaseresoucesmanually?是的。Forthis:m_sFilename=newchar[len+1];ShouldIcalldelete[]m_sFilename;sometime?是的。ShouldIusedelete[]m_sFilen

c++ - 没有 "new"C++ 的对象初始化

我对C++中的对象初始化有点疑惑。我读到应该尽可能避免使用“new”关键字,因为我不需要它提供的东西(动态分配,对吧?),而且我不想手动删除对象。我在不使用new的情况下调用我的对象的初始化时遇到了麻烦。我有这个类:classApodization{public:Apodization(){std::cout和这段代码:Apodization*apoObj();//Apodization*apoObj=newApodization();当使用new创建对象时,打印会按预期发生,但并非没有。我猜这是因为我只是在上面的例子中创建了一个Apodization类型的指针,但我不知道从那里去哪里

c++ - 在 C++ 中,如何在不使用 new 且不单独声明单个元素的情况下创建 `std::initializer_list<base *>`?

在C++中,您可以在文件范围内声明一个数组:staticfooa[]={foo(),foo(),foo()};各个foo对象具有静态存储(即它们不在运行时分配)。如果我有一个由两个或更多派生类继承的基类,则以下内容可以编译但由于切片而无法按预期工作:staticbasea[]={derived1(),derived2()};这样的事情不应该导致切片发生:staticderived1d1;staticderived2d2;staticbase*a[]={&d1,&d2};我的问题是:如何在不声明d1的情况下做同样的事情?和d2与a分开,同时为单个(指向的)元素保留静态存储?以下给出了“获

c++ - 为什么 new 能够创建一个字符串数组?

我见过以下列方式使用字符串数组的代码。string*pointer=newstring[runtimeAmmount];我还看到过如下访问字符串中的单个字符。stringaString="this";charbString[]="that";bString[3]=aString[3];以上将导致bString等于“thas”。这表明字符串实际上是指向第一个字符位置的指针。然而,字符串仍然具有访问为“string.c_str()”的成员函数,这意味着它本身作为一个对象并不遵循指针的规则。这一切是如何运作的?注意:我原来的问题是不同的,但我把它打出来了。如果有人仍然可以回答我原来的问题只是

c++ - 如果我将 free 与 new 一起使用或将 delete 与 malloc 一起使用,结果会怎样?

是编译错误还是运行时错误?下面的代码可以编译!classBase{voidg();voidh();};intmain(){Base*p=newBase();free(p);return0;}但是,如果我这样声明类Base,它就不能用虚函数编译了classBase{virtualvoidg();voidh();};无论函数是否为虚函数,下面的代码都可以一直编译。classBase{voidg();voidh();};intmain(){Base*p=(Base*)malloc(sizeof(Base));deletep;return0;} 最佳答案

c++ - "new int[];"是做什么的?

这行代码做了什么?newint[];根据我的编译器反汇编(VC++2012),它的作用与:newint[0];但它是C++标准规定的吗?这是合法的指示吗? 最佳答案 表达式newint[]对C++11无效(我没有检查C++14)。对于单个[],语法需要一个(隐式转换为)整数类型expression在方括号之间,表示所需的数组大小。请注意,此大小不必是常量:在抽象的底层,这就是您在C++中分配动态数组的方式。C++11(通过N3290最终草案)§5.3.4/6:”Everyconstant-expressioninanoptr-new

c++ - std::set_new_handler 如何提供更多可用内存?

来自std::set_new_handlernew-handler函数是分配函数在内存分配尝试失败时调用的函数。它的预期目的是三件事之一:提供更多可用内存终止程序(例如通过调用std::terminate)抛出类型为std::bad_alloc或派生自std::bad_alloc的异常下面的重载能保证什么吗?void*operatornew(std::size_tsize)throw(std::bad_alloc){while(true){void*pMem=malloc(size);if(pMem)returnpMem;std::new_handlerHandler=std::set

c++ 构造函数与 new

我犯了一个非常愚蠢的错误,只是将指向一些新内存的指针包装在一个简单的类中。classMatrix{public:Matrix(intw,inth):width(w),height(h){data=newunsignedchar[width*height];}~Matrix(){deletedata;}Matrix&Matrix::operator=(constMatrix&p){width=p.width;height=p.height;data=p.data;return*this;}intwidth,height;unsignedchar*data;}.........//main

c++ - 检测 "new"项目何时被删除

这个问题在这里已经有了答案:HowcanIdetermineifaC++objecthasbeendeallocated?(6个答案)关闭4年前。考虑这个程序:intmain(){structtest{test(){coutSpeak();system("pause");}我原以为会发生崩溃,但实际上却发生了:HelloGoodbyeIsay!我猜这是因为当内存被标记为释放时,它并没有被物理删除,而且由于代码直接引用它,对象仍然在那里,完好无损。在调用Speak()之前进行的分配越多,发生崩溃的可能性就越大。无论出于何种原因,这对我的实际线程代码来说都是一个问题。鉴于上述情况,我如何可