【发布时间】:2014-10-12 06:24:34
【问题描述】:
如果你这样做,在 java 中
Myobj one = new Myobj();
Myobj two = one;
那么一和二指向同一个对象。
如果我这样做的话,在 C++ 中:
Myobj one = new Myobj();
Myobj *two = &one;
这本质上与 java 示例相同吗?其中修改one或two会影响两个对象?
【问题讨论】:
-
不,这不能编译:
two应该声明为Myobj*,然后只做one = two;。您还可以在 C++ 中使用引用。 -
@quantdev 好吧,我实际上并不想要
one = two,但是当我初始化two时,我希望它是one的副本。然后我可以稍后编辑two。我做对了吗? -
@user1008134 一个当前是空指针
-
@user1008134 您的代码甚至无法编译。您将指针分配给对象(第二行),然后甚至将指针的地址分配给已取消引用的对象(不存在,您只能取消引用指针)。
-
@Winestone 更正了,我打错了
标签: java c++ variable-assignment