小编Ale*_*lex的帖子

在C++中检查子进程的状态

我有一个fork()用于创建子进程的程序.我已经看到了各种wait()用于在关闭之前等待子进程结束的示例,但是我想知道我能做些什么来简单地检查文件进程是否仍在运行.

我基本上有一个无限循环,我想做一些像:

if(child process has ended) break;

我怎么能这样做?

c++ fork parent wait

13
推荐指数
1
解决办法
3万
查看次数

在Java的3d游戏编程

我最近同意帮助一个朋友制作他一直在做的游戏,我决定我更喜欢用Java编写它.我不确定在Java中使用3D的最佳途径是什么.我发现大多数人都在谈论Java 3dJava中的3D图形,这似乎基本上是一个包装器Directx,openGL但我也发现Java 3d自2008年以来一直没有积极开发.它仍然是最好用的或是在那里更积极的发展会更好.我已经看过一些关于其他一些API的讨论,但Java 3d似乎有更好的文档,并且有一些相当不错的关于Java编程的书籍似乎都是基于Java 3d.

java 3d

8
推荐指数
1
解决办法
2万
查看次数

为C++类播种rand()

我正在开发一个rand()在构造函数中使用a的C++类.我真的希望这个班级能够在各方面照顾好自己,但我不确定在哪里播种rand().

如果我rand()在构造函数中播种,那么每次构造我的对象类型的新实例时它都将被播种.因此,如果我按顺序创建3个对象,它们将在同一秒内创建,因此具有相同的种子rand(),为对象的3个实例中的每个实例生成完全相同的数据.

我想rand()在类代码中播种,而不是在创建对象之前必须在我的程序的main函数中进行.我想做一个static bool seeded;表示是否rand()已播种的变量,但我不确定如何在创建类时将其初始化为false.

我的想法是这样的

myConstructor(){
    if(!seeded){
        srand(time(NULL));
        seeded = true;
    }

    myVariable = rand()%maxVal;
}
Run Code Online (Sandbox Code Playgroud)

我想如果我能弄清楚如何在程序开始时将静态值初始化为false,那么这将有效.我的理解是,如果对象的所有实例都是静态的,那么将此静态值更改为true将会传递该对象的所有实例,因此只会在第一次创建对象类型时执行种子函数.

c++ random class static-variables random-seed

6
推荐指数
2
解决办法
6826
查看次数

JOGL和JMonkeyEngine的好书和网络资源?

我目前正在尝试在项目的使用JOGLJMonkeyEngine项目之间做出决定,所以我想了解一下每个项目的基础知识,并决定我喜欢哪个项目.有没有人有任何书籍或网络资源建议学习如何使用每一个?我真的更喜欢提供大量详细信息和示例的内容,这些内容使用良好的风格而不是简短的在线教程,而且代码示例质量很差.官方文档总是很好,但我还没有找到它. JMonkeyEngine说它有完整的文档,但我还没有在他们的网站上找到它.任何信息,将不胜感激.

我应该提一下,我以前从未使用OpenGL过.如果我一起去,JOGL我将需要学习所有的OpenGL基础知识,所以OpenGL如果JOGL资源没有全面详细介绍,我也需要很好的资源.

java opengl 3d jogl jmonkeyengine

4
推荐指数
1
解决办法
2038
查看次数

删除队列对象数组

我正在处理一个对象,该对象包含一个queues数组长度的数组,该数组长度在调用构造函数之前不会被确定.基本上它看起来像下面这样

#include <queue>

class myClass{
public:
  //public functions
private:
  //private functions and variables

  queue<int>* myQueue;
};
Run Code Online (Sandbox Code Playgroud)

它初始化如下:

myClass::myClass(int numOfQueues){
  myQueue = new queue<int>[numOfQueues];
}
Run Code Online (Sandbox Code Playgroud)

看起来这一切都很美妙.它的功能与我希望的完全一样,但现在每次退出程序时都会出现分段错误.该类中有一些其他数组以相同的方式初始化,但这些数组是类型boolint不是队列.我的析构函数看起来像:

myClass::~myClass(){
  delete boolArray;
  delete intArray;
  delete myQueue;
}
Run Code Online (Sandbox Code Playgroud)

现在假设这个析构函数工作的boolArrayintArray指针,因为我没有开始变得段错误,直到我说myQueue.有谁知道编写析构函数的正确方法是什么?是否有可能这就是我必须做的事情,并且析构函数在适当的时候没有被调用?

c++ arrays queue pointers delete-operator

2
推荐指数
1
解决办法
2427
查看次数