C++程序设计语言可以看作是C语言的改进和升级,不仅完全兼容C语言的语法和函数库,而且引入了面向对象,运算符重载,多态性,数据流和模板等最新的编程思想,极大地保证了源代码的生产率,质量和可重用性.
1、类和数据抽象
类和数据抽象是面向对象思想的基本范畴,面向对象思想是将任何事物看作对象,对象有自己的属性和行为,收集这些属性就是数据抽象的任务.如果把同一类事物的属性和行为作为一个类别来认识,这个类别就是该类事物的类,每一个有相同属性和行为的事物都是该类的对象.
用类实现数据抽象:在C++语言中,类是封装的程序包.程序包里有自身的数据和函数.这些数据可看作是属性,函数可看作是行为.对象是类在源代码中生成出来的独立的程序体,对象具有类的全部属性和行为.因此可以认为:对象是有”生命”的程序体,它能通过行为改变自己的属性,也能根据属性产生不同的行为.
命名空间:每一个类都有自己的命名空间,就是类名.
作用域:类的作用域是整个文件,类的数据成员和成员函数的作用域在该类之中.类的所有成员函数在类的内部都可以直接访问其他类成员,并且可以按照名称引用.在成员函数中定义的变量,作用域是该函数.
重要:良好的软件工程习惯要求接口和实现分离.类的接口定义为头文件(.h),而类的实现在源文件(.cpp)中进行.
访问限制符:成员访问说明符共有3个:public,private和protected. public说明符表示该成员可以在该类以外被访问,这种成员通常是作为类的接口函数或数据.private说明符表示该成员只能被该类的其它成员访问,这样的数据可以得到保护.protected说明符表示该成员可以被该类和该类的子类所访问,在类的继承时需要用到此概念.
2、C++特性
C++语言的重要特性:运算符重载,继承,虚函数和多态性,流输入与输出,模板,异常处理.
虚函数和多态性:虚函数是一种特殊的成员,该成员在父类中定义但不实现该函数的细节,而将细节留在子类中进行实现.虚函数必须加上关键字virtual,以便可以使用指针对指向相应的对象进行操作.多态性是通过虚函数实现的,即通过同一父类的虚函数,子类实现不同的细节.
流输入与输出:cin函数的作用是输入数据流,cout的作用是输出数据流,endl函数的作用是立即将缓存中的数据全部输出.
模板:模板是C++中更高级的特性,利用模板,不仅可以指定全部相关的函数重载,即模板函数,还可以指定全部相关的类,即模板类.模板可以生成通用的函数,这些函数不仅能够接受任意数据类型的实际参数,而且可以返回任意类型的值.