C语言是面向过程程序设计的语言,而C++是面向对象程序设计的语言,两者具有不同点。
面向过程程序设计(pop):是一种以过程为中心的编程思想。
基本思想:
--利用过程或函数来抽象和模拟客观现实
--程序代码采用三大结构:顺利、分支、循环
--结构化程序设计方法:自顶向下、逐步求精、模块化
面向过程程序设计的软件实现方法:
重点:放在如何实现细节过程方面,将数据与函数分开
--形式:主模块 + 若干个子模块(如C:main() + 子函数)
--特点:自顶向下,逐步求精——功能分解--缺点:效率低,是手工作坊式的编程
存在的问题——数据与算法分离,程序数据和操作数据的函数是分离的,不足之处是:编写大型程序困难,程序的升级维护不便, 数据安全性差,无法重用代码,编程效率不高。
面向对象程序设计(oop):
--使用面向对象的观点来描述模仿并处理现实问题
--要求:高度概括、分类和抽象。
主要目标:重用性、灵活性和扩展性。
对象
用来描述客观事物的一个实体,它是构成系统的一个基本单元。一个对象具有一组属性和行为。
对象构成要素:
--对象名称:这是对象的标识,用来区别与其他对象
--属性: 用来描述对象静态特征的一个数据项
--行为 : 用来描述对象动态特征和行为的一个操作
类(class)
概念:是具有相同属性和行为的一组对象的集合, 它为属于该类的全部对象提供统一的抽象描述。
类的描述:不同的面向对象编程语言采用不同的描述形式。在C++中用关键字class来定义描述一个类
#include<iostream>
//标准命名空间(包含很多标准定义)
using namespace std;
const double PI = 3.14;
class MyClass
{
public:
void setR(double r){
this->r = r;
}
double getS(){
return PI*r*r;
}
private:
double r;
double s;
};
void main(){
double r;
cout << "请输入圆的半径:";
cin >> r;
MyClass m;
m.setR(r);
cout << "圆的面积:" << m.getS() << endl;
getchar();
}
复制代码
OOP基本特征(即一个方法、三个特性)
1)、抽象方法:数据抽象,行为抽象
2)、封装性: 数据与行为(或功能)相结合,形成一个有机整体即“类”。不同“类”的数据、函数相互独立,互不影响; 将“类”中的某些部分隐蔽,只留下少量接口与外界联系,增加安全性,减少出错的可能性。
3)、继承性:利用一个已有的类去建立一个新的类,这就可以重用已有软件中的一部分甚至大部分,大大节省了编程的工作量。这是实现“软件重用”的重要途径。
4)、多态性(polymorphism):几个相似而又不完全相同的对象,接到相同的消息时产生完全不同的行为的现象。
多态性的实现:
运行时多态性:虚函数
编译时多态性:重载
重载分为:
a)、函数重载:是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字
b)、运算符重载:是指同一个运算符可以施加于不同类型的操作数上面
优点:重载进一步提高了面向对象系统的灵活性和可读性
C与C++的关系:
1、C++可以与C代码进行混编
2、C++面向对象编程语言、C面向过程的编程
3、C++对C的一个增强