屏印象总结了几条,随着深入学习,以后还会补充。 C++的对象可以分配在heap和stack,而java的对象只能在heap;
因此,Java对象都是全局的,当没有引用时,由GC负责回收,生命周期不明确,所以Java没有析构函数,资源管理要靠try catch finally;
C++,stack中的对象在调用方法退出后会调用析构函数,heap中的对象delete时自动调用析构函数,所以会有RAII(Resource Acquisition Is Initialization);
Java中类的非静态方法都是虚拟的(virtual),而c++必须明确指出哪些方法是virtual;
Java没有指针,对象是全局的,分配在heap中,创建和赋值都很简单;
C++的多态(polymorphism)要靠指针,虚拟函数表(vtalbe);
因此引申出了拷贝构造函数,赋值构造函数,当然这和RAII也有关系。
订阅:
博文 (Atom)