c是结构化的面向过程的语言,重点在于算法和数据结构,它设计的首要考虑的是如何通过一个过程对输入进行运算处理得到输出。
C++拥有面向对象的特性,当然也可以写出与c一样的过程化程序,但它首要考虑的是如何构造一个对象模型,让这个模型能够更好的配合对应的问题,这样就可以通过获取对象的状态信息得到输出或者过程控制。
两者的主要区别是解决问题的思想方法不同。
对语言本身c是c++的子集,c实现了c++中过程化控制及其他相关功能,在c++中的c相对于原来的c有所加强,引入了重载 内联 异常处理等,c++拓展了面向对象设计的内容,如 类 继承 模板 包容器类等等,在c++中不仅考虑数据封装,还要考虑对象粒度的选择,对象接口的设计和继承,组合与继承的使用等问题,相对于c,c++包含了更丰富的设计概念。
C++是面向对象,C是面向过程。C++是C的升级,兼容C,C++比C多一个类的知识,其它的没有什么不同,如果在C编译环境下编译的程序在C++下不用改就可以在C++编译环境下编译。
从C到C++~~
计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。先后出现了多种计算机高级语言。其中使用最广泛、影响最大的当推BASIC语言和C语言。
BASIC语言是1964年在FORTRAN语言的基础上简化而成的,它是为初学者设计的小型高级语言。
C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用C语言编写的。
但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。
C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C++保留了C语言原有的所有优点,增加了面向对象的机制。
C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
C++对C的“增强”,表现在两个方面:
(1) 在原来面向过程的机制基础上,对C语言的功能做了不少扩充。
(2) 增加了面向对象的机制。
面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。
不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。
学习C++,既要会利用C++进行面向过程的结构化程序设计,也要会利用C++进行面向对象的程序设计。
C++ 标准库中的string类型 支持可变长度的字符串,提供了很多有用的操作 标准库将负责管理与存储字符相关的内存。
平均来说 使用string类型的程序执行速度比C风格字符串快很多 而且不容易出错 ;以前的很多地方C语言程序是用C语言风格字符串写的 没有用标准库类型string 可能不具备有移植性 两者都要掌握 现代C++程序员应更多地使用string