【发布时间】:2015-02-02 14:46:40
【问题描述】:
我用 C++ 编写了一个 SDL 图形程序(大约 300 行,所以我会尝试总结一下)。该程序涉及 Springs 和 Vertices,它们都是类。 Springs 以胡克式的方式对其两个 Vertices 施加力。
这是初始化三个顶点和两个弹簧的代码。 S1 和 S2 是弹簧,V1、V2 和 V3 是顶点。
//Initialize vertices
Vertex V1;
V1.pos.x = 100;
V1.pos.y = 300;
Vertex V2;
V2.pos.x = 200;
V2.pos.y = 200;
Vertex V3;
V3.pos.x = 300;
V3.pos.y = 100;
//Initialize springs
Spring S1;
S1.p0 = V1;
S1.p1 = V2;
Spring S2;
S2.p0 = V2;
S2.p1 = V3;
意图是V2 连接到S1 和S2,并且两个弹簧通过这个顶点相互连接。真正发生的是,通过编写S2.p0 = V2;,制作了 V2 的副本。我做了这个插图来澄清一下。
所以这是我的问题:如何编辑上面的代码以获得预期的结果?也就是说,如何将p0 和p1 分配给弹簧,以便它们引用原始对象?基本上,我试图将references 分配给V2,而不是V2 的副本。我该怎么做?
【问题讨论】:
-
指针或引用类型,你都试过了。
-
指针让我无所适从。我不确定是简单地将指针分配给
V1-3,还是更改Spring类中p0和p1的定义 -
很好的图解问题! :)