草庐IT

non-void

全部标签

java - 从 void 函数返回

假设一个类存在如下:classFoo{voiddo_after_something(){//somecodeherereturn;}voiddo_something(){//somecodeherereturndo_after_something();//returninganother(void)function}};JAVA显然反对上面这样的东西,BorlandC++编译器发出警告,MSVC++没有提示。我的问题是:从void函数返回在逻辑上(理论上)是否正确?returndo_after_something();相对于:do_after_something();return;或是

c++ - (void) 在 C++ 中是什么意思?

这个问题在这里已经有了答案:Whycastanunusedfunctionparametervaluetovoid?(2个答案)关闭7年前。我正在查看一些具有如下功能的代码:voidf(A*a,B&b,C*c){(void)a;(void)b;(void)c;}每行开头的(void)到底是做什么的?

c++ - 错误 LNK2019 未解析的外部符号 _WinMain@16 在函数 "int __cdecl invoke_main(void)"(?invoke_main@@YAHXZ) 中引用

这是我的剧本我不知道如何解决这个错误请帮我非常感谢floatangle=15;floatx,y,z;//forpolygonrotatevoiddisplay(){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//clearscreenanddepthbufferglLoadIdentity();glPushMatrix();glColor3f(1.0,0.0,0.0);glBegin(GL_POLYGON);glVertex2f(160.0,360.0);glVertex2f(300.0,360.0);glVertex2f(160.

c++ - 除了与内存分配相关的东西之外,void* 是否必要

除了C++中与内存分配相关的内容之外,void*是否必要?能举个例子吗? 最佳答案 记录内存地址如果你想使用iostreams输出一个指针(例如用于日志记录)然后通过void*是确保operator的唯一途径没有以某种疯狂的方式重载。#includestructfoo{};std::ostream&operator(ptr)测试iostream状态iostreams重载operatorvoid*作为状态检查,以便像if(stream)这样的语法或while(stream)是测试流状态的简便方法。模板元编程您可能想使用void*有时使

c++ - 在 void 指针指向的内存中创建一个对象

如果我有一些空闲内存块的void*并且我知道至少有sizeof(T)可用,是否有任何方法可以在内存中的那个位置创建类型T的对象?我只是想在堆栈上创建一个T对象并将其memcpy过来,但似乎必须有更优雅的方法来做到这一点? 最佳答案 为其使用新的放置:#includevoid*space;new(space)T();记得在释放内存之前删除它:((T*)space)->~T();不要在栈上创建对象然后memcpy过来,不安全,如果对象的地址存储在成员或成员的成员中怎么办? 关于c++-在vo

c++ - 无法在 pthread_create 函数中将 '*void(MyClass::*)(void*) 转换为 void*(*)(void*)

我正在尝试使用“CameraManager”类创建一个新线程,但出现以下错误:cannotconvert'*void(CameraManager::*)(void*)tovoid*(*)(void*)inpthread_createfunction我在cameramanager.h文件中定义:public:void*dequeueLoop(void*ptr);在cameramanager.cpp中voidCameraManager::startDequeuing(){dequeuing=true;dequeueThreadId=pthread_create(&dequeueThread

c++ - BST : void value not ignored as it ought to be

我试图在C++中实现BST。这是一个特定的成员函数,用于执行顺序遍历并返回包含树元素的vector。现在问题出现在我设置为当前节点的堆栈pop()函数上。void值没有被忽略,因为它应该被忽略我知道在前面的pop()调用之后空堆栈将返回一个空值。但是解决这个问题的方法是什么,因为这个traversalalgorithm需要它从堆栈中检索最后一个节点。vectorBSTree::in_order_traversal(){vectorlist;stackdepthStack;Node*cur=root;while(!depthStack.empty()||cur!=NULL){if(cur

C++ 为什么使用从 (std::string) 到 (void) 类型的隐式转换?

我在查看CPP-NETLIB的源代码时遇到了描述概念的语法。templatestructClientRequest:network::Message{BOOST_CONCEPT_USAGE(ClientRequest){std::stringtmp;Rrequest_(tmp);swap(request,request_);//swappableviaADLstd::stringhost_=host(request);boost::uint16_tport_=port(request);std::stringpath_=path(request);std::stringquery_=q

c++ - C++ 中的 void(*) 有什么意义吗?

我正在尝试理解C++函数指针语法。当我在Linux上的Eclipse中键入:void(*);它用一条消息说语法错误突出显示了该语句,但它让我编译它并且程序运行了。然后在VisualStudio上我试了一下,它不会编译,说“预期的表达式”。然而奇怪的是,当我这样做时:std::vectormyVector;它在VisualStudio上编译良好。还有一些在线编译器void(*);它自己工作正常。我知道:void(*)();...是一个函数指针并且..void();...是一个函数签名,这就是为什么你可以这样做:std::functionfunc;我在理解函数指针语法时遇到了很多麻烦。谢谢

c++ - 使用 (void)someInt 的原因;在代码中

我正在阅读我正在使用的库的一些代码,我发现在一个函数中使用了它:voidsomeFunction(Foo&a,intindex,intpartId){(void)partId;(void)index;//morecode}谁知道为什么?谢谢。 最佳答案 避免编译器警告/错误指示变量未在函数体中使用。这是一种风格选择,另一种实现相同效果的方法是不给变量命名:voidsomeFunction(Foo&a,int/*index*/,int/*partId*/) 关于c++-使用(void)so