最开始学的是C,是面向过程的。
后来发现C++很多库可以简化很多函数,于是用C++面向过程写程序。
C++面向对象我没用过,只是用它的一些好用的函数或者函数库
再后来写Java,受到之前C和C++面向过程的影响,发现Java要用某个方法的时候,只能新建对象
故:Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,C++ 为了兼容 C 即支持面向对象也支持面向过程。
学C的时候用Dev C++,苹果系统没有,而且基本上一样的源代码,放在Visual Stdio上就要改一些东西,C++的编译器也有很多种,g++,clang++等等,这个就和语言的历史有关了
故:Java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台。
我用C++写函数的时候,参数就是传其他函数或者结构体或者变量的指针
Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。
Java为什么没有指针?没有指针怎么实现链表?
Java 支持自动垃圾回收,而 C++ 需要手动回收。
Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。
Java 不支持操作符重载,虽然可以对两个 String 对象执行加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。
Java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。