1.1.2 内存管理是否自动释放
C++(www.cppentry.com)和C#、Java这3种语言中,C++(www.cppentry.com)是最早出现的,保持了对C的兼容性,允许指针的存在,允许程序员手动高效地管理、使用内存(尽管这也是最容易引起问题的地方)。C++(www.cppentry.com)在发展的过程中,不断地补充语言特性,使得C++(www.cppentry.com)成为最灵活的编程(www.cppentry.com)语言之一。C++(www.cppentry.com)语言的灵活性是建立在其复杂的语法之上的,因此对于初学者来说,很有可能因此望而却步,但是如果坚持下去,就会发现,再去看C#、Java语法时会感到很轻松。
C#、Java语言相对C++(www.cppentry.com)语言来说,在语法上要简单得多,因此初学者很容易上手。二者抛弃了最容易引起问题的指针,对内存的管理完全自动化,这样虽然带来了程序的稳定性和安全性,但是在某种程度上丢失了效率。
提示:因为内存管理自动化,C#、Java语言拥有垃圾自动回收机制,在C++(www.cppentry.com)中,申请的内存必须由程序员自己手动释放,如果忘记这一点就会引起内存泄露。
C++(www.cppentry.com)丰富的语言特性在一定程度上弥补了如下不足:
部分C++(www.cppentry.com)库拥有内存管理机制,如STL、Boost等。
C++(www.cppentry.com)拥有智能指针。
某些C++(www.cppentry.com)库实现了垃圾回收功能。
【责任编辑:
夏书 TEL:(010)68476606】