1.2 C++的特色
C++由C语言发展而来,继承了C语言的优点,同时对其进行了大量的改进。
C++语言是一种支持面向对象的高级程序设计语言。面向对象的设计与面向过程的设计有很大区别。因此,它的一些特点主要体现在其对面向对象编程的支持上。
(1)C++支持数据封装,支持数据封装就是支持数据抽象。在C++中,类是支持数据封装的工具,对象则是数据封装的实现。在C++中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义,数据将被隐藏在封装体中,该封装体通过操作接口与外界交换信息。在C++中,结构可作为一种特殊的类,它虽然可以包含函数,但是它没有私有或保护的成员。
(2)C++类中包含私有、公有和保护成员。C++类中可以定义3种不同访问控制权限的成员。一种是私有(Private)成员,只有在类中说明的函数才能访问该类的私有成员,而在该类外的函数不可以访问私有成员;另一种是公有(Public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(Protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。
(3)C++语言中通过消息处理对象,每个对象根据所接收到的消息的性质来决定需要采取的行动,以响应这个消息。
(4)C++中允许友元函数访问封装性类中的私有成员。私有成员一般是不允许该类外面的任何函数访问的,但是友元函数可以打破这条禁令,它可以访问该类的私有成员(包含数据成员和成员函数)。
(5)C++允许函数名和运算符重载。C++支持多态性,允许一个相同的标识符或运算符代表多个不同实现的函数,这就称为标识符或运算符的重载,用户可以根据需要定义标识符重载或运算符重载。
(6)C++具有继承性,可以允许单继承和多继承。一个类可以根据需要生成派生类。派生类继承了基类的所有方法,另外派生类自身还可以定义所需要的不包含在父类中的新方法。一个子类的每个对象包含从父类那里继承来的数据成员以及自己所特有的数据成员。
(7)C++语言支持动态联编。C++中可以定义虚函数,通过定义虚函数来支持动态联编。
提示
虽然C++是在C的基础上发展起来的一门新语言,但它不是C的替代品,不是C的升级。C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++11,最新的C标准是C11。
因此,不存在先学C再学C++的说法,也不再(注意这个“不再”)有C++语法是C语法的超集的说法。