classname B//java
=classname *B//c++
总觉得要需要一个NEW啊

解决方案 »

  1.   

    c++里边可以重载运算符,B=A里边的=应该已经重载了,然后方法里边划分过内存区域了!!
      

  2.   

    java中没有拷贝构造函数。
    这种:
    class A{
      A(){...}
    }
    class B{
      B=A;
    }
    没有这种语法。
      

  3.   

    我的理解:=是将对象A的引用付给B,如果要得到一个对象A的拷贝,要用
    CLONE()方法实现
      

  4.   

    在java中,如果你想拷贝一个和原来的对象完全一样的复制,那么一般是使用clone()来达到目的的,你所需要clone 的对象必须首先实现Cloneable接口开可以,但是有一点请注意,clone方法只能逐一拷贝对象的字段,如果你要拷贝的对象中有其他的对象,那么就需要重写clone方法,在方法中首先调用超类的clone,然后再将对象clone,如:
    Class a implements Cloneable
    {
         private int a;
         private int b;
            .......     BBB b;//BBB是你定义的另一个类或者是系统里的某些类
    }
    在这种情况下,你想要拷贝该对象就必须重载clone()方法,如:
    public Object clone()
    {
        try
        {  
            a aClone=(a)super.clone(); 
            aClone.b=(BBB)b.clone();
            return aClone;
        }
        catch(ClonedNotSupportedException e).....
    }
           
    以上只是个人心得,希望有所帮助,谢谢
      

  5.   

    class A{
    int value;
    A(int value){
    this.value=value;
    }
    A(A a){
    this.value=a.Value;
    }
    }
    this.value=a.Value;这句就不行,
    从Object类继承clone()方法内部还是调用new来完成新对象的创建工作。