C++基础篇(3)——从面向过程到面向对象
来源:互联网 发布:云计算专业认识 编辑:程序博客网 时间:2024/05/23 22:09
引言:
目前,软件行业还在使用的软件开发核心思想包括面向过程和面向对象,今天我们来研究一下融合俩种思想的强大语言——C++。
概述:
C++作为一种融合俩种软件开发思想的混合型语言,那么肯定存在一个由面向过程过渡到面向对象的过程经历,同时我们也简单对俩种思想做一个比较。
内容:
一 从结构体到类
1 结构的演化
(1)C语言和C++结构体的区别:
1)定义形式:
C语言:struct 结构名
{
类型 变量名
}
2)结构体成员不同:C语言的结构体不可以定义函数,C++的结构对象可以定义函数,称之为成员函数。
3)使用原理不同:
(2)C++结构体特点
1)函数与数据共存:struct 结构名 {
数据成员 //可以像C语言中结构体变量使用数据成员那样,通过C++结构对象使用成员函数:结构对象.成员函数
成员函数
};
2)封装性:私有的数据成员,必须通过公有的成员函数才能使用。
(3)构造函数初始化对象。
构造函数名 对象名 (初始化参数);
2 结构体到简单类
(1) 使用关键字class代替struct,就是一个标准的类;
(2) 同时成员变量中加入了成员函数。
二 面向对象
1 基础知识点
(1) C++描述对象的三要素:对象名、属性和操作。
(2) 属性:描述对象静态特征的一个数据项;
(3) 操作:描述对象动态特征的函数序列(使用函数实现操作),也称为方法或服务。
2 三大特点(封装、继承、多态)
(1)封装:把对象的属性和操作集合成一个独立的系统单元,并尽可能隐蔽对象的内部细节。
对象内部数据结构的不可访问性称之为信息(数据)隐藏。
好处:使得程序员在设计程序时可以专注于自己的对象;切断了不同模块之间数据的非法使用,减少了出错的可能性。
在类中,封装是通过存取权限实现的。
(2)继承:一个类获得另外一个类的特性。低层的类只须定义它自己的特征,而共享高层的类中的特征。
(3)多态性:不同的对象可以调用相同名称的函数,实现完全不同的行为。
3 类和对象的使用
(1)string类:描述字符串特性
1)使用之前包含头文件:#include <string>
2)俩种string类对象初始化方式:string str1 ("We are here! "); str2 = " where are you?";
(2)complex对象:定义复数对象。
1)使用之前包含头文件:#include <complex>
2)定义使用:complex <数据类型> 对象名 (实部值,虚部值);
3)复数类需要俩个初始值:实部和虚部,借助构造函数初始化语法来实现多值处理。
4)complex是一个模板类,可以定义多种数据类型的复数。
(3)模板类和类的区别:类是抽象出一类物质的共同特征;模板则是归纳出不同类型事物的共同操作。
三 面向过程和面向对象:
1 面向过程:
(1)概念:不必了解计算机的内部逻辑,而把精力主要集中在对如何求解问题的算法逻辑和过程的描述上,通过编写程序把解决问题到步骤告诉计算机。
(2)特点:按部就班地解决,而且条理清晰易懂。
程序设计特点就是函数设计,函数是模块的基本单位,是处理问题的一种抽象。
结构化程序设计使用的是功能抽象。
2 面向对象:
(1)特点:面向对象程序设计不仅能进行功能抽象,而且能进行数据抽象。“对象”实际上是功能抽象和数据抽象的统一。
面向对象的程序设计方法不是以函数过程和数据结构为中心,而是以对象代表求解问题的中心环节。
总结:
C++是介于C语言和C#俩种语言之间的混合型语言,C++其实可以解决很多单种思想类型语言解决不了的问题,例如C语言的驱动程序开发,以及java的多重继承等。C++保留了C语言的指针,但也引入了C#的类和对象,所以它是很强大。
0 0
- C++基础篇(3)——从面向过程到面向对象
- 从面向过程到面向对象——在C中如何实现面向对象编程
- 【转】从面向过程到面向对象——在C中如何实现面向对象编程
- 从面向过程到面向对象
- 从面向过程到面向对象
- 从面向过程到面向对象
- 从面向过程到面向对象
- 4.3 从面向过程到面向对象
- 从面向过程到面向对象
- 从面向过程到面向对象
- 面向过程到面向对象
- ”面向过程“到”面向对象“
- 从面向过程到面向对象的转变----C++
- 从C/C++到Objective-C(二)--- 面向对象
- JAVA从基础到精通(面向对象)
- 面向接口设计和编程——(面向对象、面向接口、面向过程、面向实现)
- 【java初学者】理解,从面向过程 到 面向对象,面向接口,面向切面
- C#基础(11)——面向过程、面向对象、类中方法
- Android中通过GPS或NetWork获取当前位置的经纬度
- 案例借鉴 | 某通讯巨头的IT建设方案
- CSS控制缩略缺省显示...
- Objective-C修改运动步数
- 免费切图标记外挂神器Assistor PS
- C++基础篇(3)——从面向过程到面向对象
- servlet3.1规范: 第13章 安全
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
- tab切换效果(小栗子)
- Gradle学习整理
- 段(Segment) 的控制策略
- Linux入门:vim鼠标不能右键粘贴、跨系统复制粘贴
- centos安装arm-linux-gcc4.4.3相关
- 监听软键盘的收起和弹出