为什么 Java 不像 C++ 那样支持复制构造函数?
Java 确实如此。它们只是不像 C++ 中那样被隐式调用,我怀疑这是你真正的问题。
首先,复制构造函数无非是:
public class Blah {
private int foo;
public Blah() { } // public no-args constructor
public Blah(Blah b) { foo = b.foo; } // copy constructor
}
现在,C++ 将使用如下语句隐式调用复制构造函数:
Blah b2 = b1;
在 Java 中,该实例中的克隆/复制根本没有意义,因为所有 b1 和 b2 都是引用,而不是像 C++ 中那样的值对象。在 C++ 中,该语句创建对象状态的副本。在Java中它只是简单地复制参考。对象的状态不会被复制,因此隐式调用复制构造函数是没有意义的。
这就是它的全部内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)