草庐IT

return_obj

全部标签

c++ - 是否可以在析构函数运行时不破坏 obj ?

如果我重写类的析构函数,是否可以检查该实例是否应该被杀死或发送到池中?我想让重用obj变得简单,用户只需要释放它(或留给编译器),析构函数将检查它是否可重用。ReusableClass::~ReusableClass(){if(x==1){//abortdestructor,sendtopool}} 最佳答案 一旦对象的析构函数开始运行,对象就被认为是死的:12.4[class.dtor]第14段:Onceadestructorisinvokedforanobject,theobjectnolongerexists;...

python - 如何将 3D .obj 对象表示为 3D 数组?

有什么方法可以将3D模型表示为3D数组?是否有任何库将.obj或.blend文件作为输入并给出相同的数组表示?我想我会切片对象并将切片导出为图像。然后我会在opencv中使用这些图像为每个切片构建数组。最后,我将组合所有切片的所有数组,最终得到我的.obj文件的3D数组表示。但我中途放弃了,因为让图像切片彼此对齐是一个痛苦而漫长的过程。是否有任何其他基于索引的表示我可以用来在代码中表示3D模型?3D阵列对我的目的来说非常方便。 最佳答案 Binvox可用于从.obj文件生成3D模型的体素表示。Binvox-rw-py可用于读取和解析

c++ - "returning"一个不包含它的对象 C++

我希望这个问题没有被问过太多次,我尝试搜索但找不到任何东西(也许我只是不知道如何用正确的术语表达)。简单问题:我有一个vec3类,它有3个字段x、y和z其中有一个flatten函数,我想返回一个只有字段x和y的vec2对象(或者可以从中构造vec2对象的东西)。因为这是vec3类中唯一与vec2有关的函数,所以我不想包含vec2。有没有更好的方法来返回这样一个没有任何包含的简单对象(两个double)?我想返回一个指针,但如果我这样做会发生什么:vec2v2=vec3(x,y,z).flatten();//vec3(x,y,z)是构造函数当v2试图从它们构造时,临时vec3对象x和y数

c++ - 没有 return 语句到达函数末尾

ANSIX3.159-1989,第3.6.6.4节,第33-35行状态:“Ifareturnstatementwithoutanexpressionisexecuted,andthevalueofthefunctioncallisusedbythecaller,thebehaviorisundefined.Reachingthe}thatterminatesafunctionisequivalenttoexecutingareturnstatementwithoutanexpression.”我一直在查看ISO/IEC9899:1999(E)、ISO/IEC9899:2011(E)、I

c++ - BSD 套接字问题 : inet_ntop returning "0.0.0.0"

我正在尝试获取我绑定(bind)的正在监听的套接字的机器的IP。打印的端口号工作正常,但地址是“0.0.0.0”。这是相关的代码。在获取此代码之前,res已传递给getaddrinfo和getsockname。charip[INET_ADDRSTRLEN];structsockaddr_in*ipv4=(structsockaddr_in*)res->ai_addr;void*addr=&(ipv4->sin_addr);inet_ntop(res->ai_family,addr,ip,sizeofip);std::coutsin_port有什么问题吗? 最

c++ - 我可以使用什么在我的 GUI 应用程序中用颜色渲染 3D 图像(OBJ、PLY)?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我刚刚通过VTK和PCLVisualizer,无法显示完整的PLY图像。显示的只是几何图形,如下所示:关于库和使用的任何输入?

c++ - OBJ、Buffer 对象和面索引

我最近在让顶点缓冲区对象工作方面取得了很大进展。所以我转向了元素数组,我想通过这样的实现我可以从一个对象加载顶点和面数据。我不太擅长用C++读取文件,所以我写了一个python文档来解析obj并写了2个单独的txts来给我一个顶点数组和面索引,并将它们直接粘贴到我的代码中。这就像6000行,但它可以工作(没有编译错误)。这是它的样子.我认为他们错了。我不确定。顶点和面的顺序并没有改变,只是从obj中提取出来,因为我还没有适用于缓冲区对象的法线或纹理。如果你看一下立方体,我有点喜欢,但不是真的。这是rendercodevoidMesh_handle::DrawTri(){glBindBu

C# 应用程序调用 C++ 方法,错误 : PInvoke: Cannot return variants

我正在尝试弄清楚如何将复杂对象从C++dll返回到调用C#应用程序。我有一个简单的方法,它返回一个工作正常的int。谁能告诉我我做错了什么?C#应用程序:classProgram{staticvoidMain(string[]args){//Erroronthisline:"PInvoke:Cannotreturnvariants"vartoken=LexerInterop.next_token();}}C#LexerInterop代码:publicclassLexerInterop{[DllImport("Lexer.dll")]publicstaticexternobjectnex

c++ - 该程序在 main() 上的 'return;' 之后需要很长时间才能关闭

这是我正在处理的代码:#include#includeusingnamespacestd;staticunsignedlongcollatzLength(unsignedlongn){staticstd::mapcollatzMap;intmapResult=collatzMap[n];if(mapResult!=0)returnmapResult;if(n==1){return1;}else{collatzMap[n]=1+collatzLength(n%2==0?n/2:3*n+1);returncollatzMap[n];}}intmain(){intmaxIndex=1;uns

c++ - return 语句是否为按值返回的函数创建一个临时对象?

在学习C++11右值引用和移动语义时,我开始对函数究竟如何返回值来初始化变量感到困惑。看下面的例子:WidgetmakeWidget(){Widgetw;…returnw;}Widgetw1=makeWidget();这里我假设没有RVO(即编译不会省略复制/移动)。当执行返回语句returnw;时,执行函数:1)在众所周知的位置(调用者知道的某个固定寄存器或内存位置)复制初始化一个临时对象,其值成为函数的返回值?然后调用者获取这个对象来复制初始化w1?或者2)函数获取w1的调用者传递的内存位置,函数的自动变量w用于复制初始化w1?(这已经是某种RVO了吗?还是某种内联函数行为?或者它