自考面向对象及C++基础知识-自考

来源: 作者: 发布时间:2007-08-08  
  
1.1          面向对象程序设计基础知识:
Ø         程序语言:本身实际上是对一个现实问题的描述;其发展的根本问题在于如何更加接近人的自然思维。(机器->汇编->高级语言;面向过程->面向对象)
Ø         面向对象:
n         一种软件方法(方法学),而不仅仅限于程序设计语言,更重要的是如何看待世界。
n         基本思想:从现实世界中客观存在的事务(对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
Ø         面向对象程序设计语言:
n         定义:机器实现的定义。
u       数据和操作在一起,内存块可以复制副本
u       对象间通过函数调用实现通信;对象的继承
n         关键要素:
u       抽象:忽略事物的非本质特性,只注意与当前目标有关的本质特征,从而找出事物的共性;把具有共同性质的事物划为一类,得到一个抽象的概念。
u       封装:将一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。(意义:对象集中而完整的描述并对应一个具体的事物,封装的信息隐蔽作用反映了事物的相对独立性;减少“波动效应”。副作用:增加了许多只负责读写的服务。)
u       继承:特殊类的对象拥有其一般类的对象的全部属性与服务,称作特殊类对一般类的继承。
u       多态:一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。(目前不要求OOPL支持)
Ø         C++语言的来龙去脉:对C语言进行面向对象的扩展。一种混合型OOPL。
n         C语言的一个超集,语法基本使用C的语法,引入了新的概念
n         支持OO的特性
 
1.2          C++基本程序结构:讨论C++对C的一些改进
Ø         风格:
1)        输入输出:cin和cout代替printf, iostream.h代替stdio.h,更加方便。
2)        注释:“//”的引入
3)        使用const(代替无参数宏)和内联函数(代替有参数宏)代替宏定义
4)        函数原型(更强的编译时刻的检查)和缺省参数(方便函数调用、减少错误)
5)        新的动态内存分配函数new/delete:使用上更加简单
6)        新的换行符 — endl
Ø         内联函数inline:
1)        不是用函数调用的机制,编译遇到时简单的替换而已,省去了函数调用的额外开销
2)        使用宏定义的副作用:
u        # define f  (x)  (x+1); 在后面使用 f(1)展开成:(x)  (x+1) (1),报编译错,但容易发现
u        参数中有表达式:
# define floor(x,b) x>=b?0:1,
调用:if(floor(a&0x0f,0x07)) // ...
展开成:if (a&0x0f>0x07?0:1)... ;&优先级低于>,产生错误。
难发现,好解决――加括号
u        #define band(x) (((x)>5 && (x)<10) ? (x) : 0)
下面的执行结果如何?
for(int i = 4; i < 11; i++) {
int a = i;
out << "a = " << a << endl << ’\t’;
out << "band(++a)=" << band(++a) << endl;
out << "\t a = " << a << endl; }
           展开后会影响到a的值(++a)。
           这一点和函数调用不同(函数一般传值)。
u        宏没有作用域的问题
Ø         引用:
1)        使引用和原来定义的变量一样无区别的操作内存的某一空间。
2)        最主要用途:建立函数参数传递的引用传递方式,不必使用指针;另一个用途:返回引用的函数,用于赋值运算符的左边。
3)        两种情况下引用的是临时变量:对常量(或const修饰的变量)的引用;引用类型和初始化时使用的变量类型不一致。
4)        定义返回引用了函数时,不要返回局部变量的引用。
Ø         编译指令:不是C++的一部分,提供给编译器使用
1)        嵌入指令:# include  / # include “filename”
2)        宏定义:# define 宏名 替换正文
3)        条件编译指令:# if, # else, # endif, #defined
 
1.3          改变习惯重新思考
Ø         C++不仅仅是在语法上对C的扩展,改变的是整个程序设计的方式和思路
Ø         几个掌握C++新特性的途径(目前)

(阅读次数:

上一篇:自学考试《物理(工)》课程命题说明(修订)-自考   下一篇:七万多考生参加自考考办提醒带齐两证-自考

[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。