小编adr*_*on3的帖子

表达式必须具有类类型

我已经用c ++编写了一段时间,当我尝试编译这个简单的代码片段时,我遇到了困难

class A
{
  public:
    void f() {}
};

int main()
{
  {
    A a;
    a.f(); // works fine
  }

  {
    A *a = new A();
    a.f(); // this doesn't
  }
}
Run Code Online (Sandbox Code Playgroud)

c++ class new-operator

74
推荐指数
4
解决办法
23万
查看次数

在react和redux中处理本地状态

state当使用与redux一起反应时,可以在对象中存储本地状态吗?通过操作将所有内容存储在状态树中很快就会变得单调乏味.感觉某些状态仅与应用程序的显示/显示相关,而不是逻辑.通过演示我的意思是动画/闪烁,面板的扩展/收缩状态,表格中的排序标准等等.

reactjs redux

25
推荐指数
3
解决办法
6439
查看次数

Java,JFrame:getWidth()返回0

setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH);
setResizable(false);
setUndecorated(true);
System.out.println("--------> "+getContentPane().getWidth()); //----> 0 why is this happening?
Run Code Online (Sandbox Code Playgroud)

我正在尝试确定JFrame的大小.我在谷歌搜索并检查了文档,我仍然不知道为什么它不会工作它可以正常工作任何其他控件我尝试它

编辑:如果我替换,frame.getWidth()在类(在扩展JFrame)之外调用时仍然有效

System.out.println("--------> "+getContentPane().getWidth());
Run Code Online (Sandbox Code Playgroud)

System.out.println("--------> "+this.getWidth());
Run Code Online (Sandbox Code Playgroud)

getWidth仍将返回0

编辑2:我需要框架的大小,然后将其设置为可见和东西.我需要为框架添加其他控件,它们的坐标和大小取决于框架的大小.

java swing jframe

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

在webgl中将大图像上传到GPU

如何在不冻结浏览器的情况下使用webgl将大图像上传到GPU(想想高分辨率的天空盒或纹理地图集)?

我一开始以为是想找到一种方法来texImage2D异步地做它的事情(将图像上传到GPU就是IO-ish,对吧?),但我找不到任何办法.然后我尝试使用texSubImage2D上传适合16毫秒时间窗口的小块(我的目标是60 fps).但是texSubImage2D只有在传入时才需要偏移AND宽度/高度参数ArrayBufferView- 当传入Image对象时,你只能指定偏移量,它会(我猜)上传整个图像.我想首先将图像绘制到画布上(将其作为缓冲区)与将整个事物上传到GPU一样慢.

这是我的意思的最小例子:http://jsfiddle.net/2v63f/3/.我需要~130 ms才能将此图像上传到GPU.

与jsfiddle完全相同的代码:

var canvas = document.getElementById('can');
var gl = canvas.getContext('webgl');

var image = new Image();
image.crossOrigin = "anonymous";
//image.src = 'http://i.imgur.com/9Tq28Qj.jpg?1';
image.src = 'http://i.imgur.com/G0qL97y.jpg'
image.addEventListener('load', function () {
    var texture = gl.createTexture();
    gl.bindTexture(gl.TEXTURE_2D, texture);

    var now = performance.now();
    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
    console.log(performance.now() - now);
});
Run Code Online (Sandbox Code Playgroud)

javascript webgl

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

OpenGL alpha混合

我在alpha混合上发现了5349574673页,但我仍然无法获得所需的结果.我正在尝试使用opengl正确显示gif/png文件(使用透明度/半透明度).

这是我的初始化位:

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); //I've seen this on most tutorials
glDisable(GL_DEPTH_TEST); //it's a 2D game
//...loading matrices and so on
Run Code Online (Sandbox Code Playgroud)

我确定图像有透明度,并且正确加载.
glBlendFunc(GL_ONE,GL_ONE); 但我无法判断它是否在alpha通道上做任何事情,因为它会渲染为黑色=>混合工作
glColor4f(1f,1f,1f,0.3f); 工作得很好,我可以画出透明的东西

PS我正在使用这个例子http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game进行学习

编辑 我使用了用GIMP和其他纹理加载器编码的其他纹理,它现在工作正常.

opengl alphablending lwjgl

6
推荐指数
1
解决办法
9073
查看次数

为什么这堂课抽象?

我正在尝试创建表示多项式的LinkedList的实现.链接列表将是"术语"列表.术语是Data的实现(它是一个带有方法的抽象类:compareTo()和toString()).Polynomial类有一个名为head的变量,我试图将其初始化为Term.我的编译器说我"不能声明抽象类型的成员:Term",但我不认为Term是抽象的,因为它是Data的一个实现(抽象类).如果你们可以看看这个,让我知道我失踪的任何巨大的红旗,我将不胜感激.Collection.h:

  class Data {
  public:
  virtual ~Data() {}

virtual int compareTo(Data * other) const = 0;

virtual string toString() const = 0;
};

class Term : public Data { 
public:
int coefficient;
string variable1;
int exponentX;
string variable2;
int exponentY;
Term * next;

Term(int coeff, string var1, int exp1, string var2, int exp2, Term * next) : 
    coefficient(coeff), 
    variable1(var1),
    exponentX(exp1),
    variable2(var2),
    exponentY(exp2),
    next(next) {};

string convertInt(int number) {
    stringstream ss;//create a stringstream
    ss << number;//add number to the stream
    return …
Run Code Online (Sandbox Code Playgroud)

c++ abstract-class virtual-functions class abstract

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

从Eclipse导出Scala项目为jar

我有一个Scala项目,我想将其导出为jar.

*1.起初我尝试为项目创建一个Java类作为入口点

public class JMain {
 public static void main(String[] args) {
  System.out.println("Java main calling Scala main");
  SMain.main(new String[] {""}); //SMain.main is the actual *main*
Run Code Online (Sandbox Code Playgroud)

从Eclipse启动时,这工作得很好,但是当我将它导出为jar时,它会给我18个例外左右.我现在知道如何复制然后Eclipse设法启动它的"环境",我很确定它依赖于Scala已经在我的系统上的事实 - 我需要一个自包含的jar,其中包含所有内容.

*2.我的第二次尝试包括尝试lach在此提出的建议如何从Eclipse部署Scala项目? 即:

public class JMain {
 public static void main(String[] args) {
  System.out.println("Java Main");
  List<String> argList = new ArrayList<String>();
  argList.add("fully.qualified.ClassName"); //???
  for (String s : args) argList.add(s);
  scala.tools.nsc.MainGenericRunner.main(argList.toArray(new String[0]));
Run Code Online (Sandbox Code Playgroud)

这次它甚至不会从Eclipse运行,尽管从着名的NoClassDefFoundError开始它只提供了6个左右的异常.我有一种感觉,我没有得到full.qualified.ClassName正确.*3.如果主要的 Scala类被称为"Dis.scala"并且位于包"pack"中,那么full.qualified.ClassName不应该是"pack.Dis"吗?

我正在使用Jre 1.6和Scala 2.9.2编辑:我已经包含了所有外部导入的jar,甚至scala-library.jar - 一切都很好并且装在jar中

PS我不熟悉Ant或Maven或Sbt.我只想让我的Scala项目jared - 如果可能的话,不要陷入毛茸茸的事情.

java scala compilation

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

在球拍宏扩展期间可以使用运行时信息吗?

假设我在运行时有一个哈希表,其中包含字符串作为键.宏可以访问此信息并let从中构建表达式吗?

(define env (hash 'a 123 'b 321))

(magic-let env (+ a b)) ; 444
Run Code Online (Sandbox Code Playgroud)

我知道我可以identifier-binding通过在散列表中使用查找替换未定义的标识符来解决这个问题,但是阴影将无法正常工作let.

标记scheme也是因为我认为它的宏系统是相似的.

macros scheme racket

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

我可以用Java做到这一点吗?

有没有办法在Java中这样做?

class A { ... }
class B { ... }

void method()
{
 Class[] array = {A,B,A,A};
 int i = 2;
 Object object = new array[i]();
}
Run Code Online (Sandbox Code Playgroud)

不,我不想使用下面的任何ifs或开关

if(i==0) object = new A();
else if(i==1) object = new B();
...
Run Code Online (Sandbox Code Playgroud)

java class dynamic

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

glPushMatrix里面的显示列表重复模型

我有一些立方体的显示列表......非常简单的东西.这是一个片段:

GL11.glPushMatrix
GL11.glRotatef(90,0,0,1)
cuboid(1,0.5,20) //just glVertex calls
GL11.glPopMatrix
Run Code Online (Sandbox Code Playgroud)

如果我使用它来立即模式绘制没有奇怪的事情发生.但是,如果我将它放在显示列表中,它将首先绘制未旋转的长方体然后旋转(或者我在glPushMatrix和glPopMatrix之间进行的任何转换).而且,如果我不使用glPush和glPop,它的行为与预期的一样.

在显示列表中使用glPush/PopMatrix时,有什么我需要知道的吗?

编辑:添加更多源代码:

handle = GL11.glGenLists(1);
GL11.glNewList(handle,GL11.GL_COMPILE)
GL11.glBegin(GL11.GL_LINES);

GL11.glPushMatrix //if I don't use these it behaves as expected
GL11.glRotatef(90,0,0,1)
cuboid(1,0.5,20) //just glVertex calls
GL11.glPopMatrix

GL11.glEnd();
GL11.glEndList();
Run Code Online (Sandbox Code Playgroud)

EDIT2:我已经通过glPushMatrix和glEnd与glPopMatrix交换glBegin来实现它 - 我不喜欢它现在看起来如何,但至少它是有效的.据我所知,这是不正常的,我所做的只是一个技巧,所以我将问题保持开放.

GL11.glPushMatrix //everytime I want to push/pop I have to call glBegin and glEnd
GL11.glBegin(GL11.GL_LINES);
GL11.glRotatef(90,0,0,1)
cuboid(1,0.5,20) //just glVertex calls
GL11.glEnd();
GL11.glPopMatrix
Run Code Online (Sandbox Code Playgroud)

opengl displaylist

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

在Scala中声明类字段的一致方法

这经常让我感到困惑:

class Test(i: Int) {
  val this.i = i;
  val this.ii = i; // :(
}
Run Code Online (Sandbox Code Playgroud)

我想以同样的方式声明我的所有val/vars,我真的不明白为什么这会扰乱Scala编译器.在其他地方这个执行如预期,除了这里.

  1. 是否有一个很好的理由,为什么它不会让我冲在
  2. 是否有更好的方式/方式/Scala方式

constructor scala

0
推荐指数
1
解决办法
120
查看次数