Bjarne Stroustrup描述c++为"a general purpose programming language providing a direct and efficient model of hardware combined with facilities for defining lightweight abstractions"(C++ Programming Language, 4th Edition). 这个定义基本上涵盖了C++相对于其他语言最重要的两个优点。
『direct and efficient model of hardware』是指,使用C++,你所用的数据类型和在实际硬件上的执行情况一一对应。在x86架构上,当你写下int i=0,你知道编译器为你生成的源代码一定是xor eax, eax。当你声明一个对象的时候,你知道它什么时候分配,是存储在stack上还是储存在heap里,heap上的对象什么时候消失,你也知道相邻的成员一定在内存上相邻(不考虑alignment, 事实上alignment在新版本的c++中也可以直接控制,不再依赖于编译器扩展)。而在Java中,你对此没有控制,当你声明一个Integer,你不知道,也不该知道JIT编译器如何实现你的这条指令,也不会知道Integer的内存模型是什么。这使得用C++写driver和kernel成为可能,也使得C++可以充分的利用硬件性能。