java中类对象声明不分配内存,只有初始化某个值才分配,你函数里写的也不是实例对象,是局部变量,另外p2=p1这种兼容类型的赋值,不从新分配内存,只是copy引用,有点类似c++的指针,但确切的说不是指针.

解决方案 »

  1.   

    void main()
    {
     point p1,p2;//Java中不分配内存,类似于C++中 point* p1, * p2;
                 //C++中分配内存,且调用point的缺省构造函数。
     p1=point(1,2);
     p2=p1; //Java中不重新分配内存,相当于两个指针共用一个对象,系统维护引用关系,当p1, p2都不可用时才(可能)由垃圾收集器释放内存。
            //C++:1)是否重载=操作符;2)如果有拷贝构造函数调用拷贝构造函数;3)编译出错
    }
      

  2.   

    既然JAVA中point p1相当于point* p1为什么引用x时使用p1.x而不是用p1->x?
      

  3.   

    我觉得他们之间处理语法有些相似之处外其他都不相同。当然在继承方面还是有些相同之处,但是别忘了他们之间最大的不同就是Java是在Java虚拟机上运行的。
      

  4.   

    是不是JAVA中的'.'相当与C++中的'->'?
    JAVA中是不是没有结构体?