gpt4 book ai didi

java - 为什么Java没有复制构造函数?

转载 作者:IT老高 更新时间:2023-10-28 13:52:25 24 4
gpt4 key购买 nike

为什么 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 中,它只是简单地复制 reference。对象的状态没有被复制,所以隐式调用复制构造函数是没有意义的。

这就是它的全部内容。

关于java - 为什么Java没有复制构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com