00C重点知识回顾(精)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
几点说明
需要说明的是: (1)对一个具体的类来讲,上述定义式中的三个部分并非一 定要全有,但至少要有其中的一个部分。 (2)若私有部分处于类体中第一部分时.关键字private可以 省略。这样,如果一个类的体中没有一个访问权限关键 字,则其中的数据成员和成员函数都默认为私有的。 (3)private 、 protected 、 public 的次序和出现的次数可以 星任意的。这也就是说,一个类的定义中也可以有多于 一个的私有部分、保护部分或共有部分。 下面以学生类为例,介绍类的定义方法。学生是个抽 象概念,其内涵至少应包含学号、姓名、性别、年龄、 学习成绩等属性,这些属性都可用数据项来表示。学生 属性数据项上的操作有置初值、修改、查询等。这些数 据和操作可以构成一个类,即学生类。下面给出了学生 类的定义。为简单起见,先只取学号和成绩两个数据项。 16
11Leabharlann Baidu
6 引用类型
引用作为一种变量类型用符号&表示。 例如,X&就表示一个引用类型,X为被引用的 类型名,则 X&y(或X &y,或X&y) 就表示变 量y为一引用类型,是对类型为X的某变量的引 用。 引用类型的说明一般要立即进行初始化,如 int i; int& ri = i; 就表示变量 ri 引用了变量 i ,这时 ri 就可看作是 i 的别名,即它们指向同一个内存单元。
8
3 函数名重载
函数名重载就是用同一个函数名定义不同的函数, 即同一个函数名,但函数的返回类型、函数的参 数类型或个数、函数体等却不同。例如 int max(int i1, int i2); float max(float f1, float f2); double max(double d1, double d2); 这三个函数的名都是max,但它们又是不同的函 数,这就是一种函数名重载。函数名重载在C++ 中是允许的(但在C语言中是不行的,在C语言中 上述三个函数就必须采用不同的名字)。当调用重 载函数时,编译程序根据其所带参数的个数和类 型来进行选择
3
类的特性
类在OOP中被表示为由一组数据项和作 用在其上的一组操作所构成的整体。 “学生类”可由学号、姓名、学分等数 据项和对这些数据的录入、修改和查询 等操作组成。类中的数据项一般称为实 例变量或数据成员,类中的操作一般称 为方法或成员函数。
4
类的定义和使用
在OOP中,总是先定义类,再由类生成其对象。 一个类所生成的对象称为该类的实例 (instance)。 一个类的所有对象都是由类生成的,反过来, 类的所有对象都共享类中的所有数据项和操作 方法。这样,在逻辑上每一个对象都包含数据 和操作两部分,但在物理上同类的所有对象都 共享类中的数据项和方法。因此,对象可理解 为: 对象 = (算法 + 数据结构) 面向对象程序的结构特点是,程序一般由类的 定义和类的使用两部分组成。程序中的一切操 作都是通过向对象发送相应的消息来实现的。 对象接收到消息后,启动有关方法完成相应的 操作。 5
MFC编程技术
刘传才
南京理工大学 计算机学院
chuancailiu@yahoo.com.cn
1
— C++重点回顾
2
一:概述 较早的软件开发,用结构化程 序设计方法。程序的定律是: 程序 = (算法) + (数据结构)
在面向对象中,算法与数据结构被捆绑
成一个类,面向对象程序的基本元素是 对象。现实世界本身就是一个对象的世 界,任何对象都具有一定的属性与操作, 也就总能用数据结构与算法两者合一地 来描述。
9
4 缺省参数函数
缺省参数有双重含义:其一指在函数原 型中可以给出参数的初始值 (称为缺省值 或默认值 );其二指函数调用时允许缺省 部分或全部实参,缺省的这些实参,系 统自动按该函数原型中给出的缺省值处 理。例如 void fb(int a, int b=0,int c=1); //b的缺省 值为0,c的缺省值为1
12
三 类与对象的定义
1
类的定义 C++中的类是由一组描述对象属 性或状态的数据项和作用在这些数 据项上的操作构成的封装体。其中 的数据称为数据成员,操作称为成 员函数。
13
类的代码定义
C++中,类的定义格式一般如下: class<类名> { private: <数据成员> <成员函数> protected: <数据成员> <成员函数> public: <数据成员> <成员函数> };
14
类的定义复习
类的定义由关键字 class打头,后跟类名,类名 之后是类体,它被括在花括号中,最后以一个 分号“;”结束。 类体中一般有三个关键字: private、protected、 public ,称为访问权限关键字。每个关键字下 面又都可有数据成员和成员函数 其中数据成员就是表示对象的属性或状态的数 据项,当然在这里它们都是变量,也就是OOP 中所称的实例变量(本应是属性变量); 成员函数则是作用于数据成员的操作,它一般 是一个用户定义的 C++函数。成员函数也就是 OOP中所称的方法。数据成员和成员函数一般 也统称为类的成员。
10
5 内联函数
内联函数也称内置函数,就是在编译时
把该函数的程序代码插入到调用该函数 的语句之处,以便在程序运行时不再进 行函数调用。程序中的内联函数用inline 标识。设置内联函数的目的是为了消除 函数调用时的系统开销,以提高运行速 度,但这是一种用空间换时间的措施, 故仅适合一些小函数。
1 作用域标识符
“::”称为作用域标识符,它用来解决局部变量与全局 变量的重名问题。即在局部变量的作用域内,可用 “::”对被隐藏的同名全局变量进行访问。如 int x=1 //全局变量 int f2() { float x=1.2 //局部变量 cout<<"xl="<<x //输出局部变量x的值1.2 cout<<"x2="<<::x //输出全局变量x的值1 }
消息
消息就是要求对象进行某种活动(操作)的
信息。在面向对象程序中,要求某对象 作某操作时,就向该对象发送一个相应 的消息;当对象接收到发向它的消息时, 就调用有关的方法,执行相应的操作。 在面向对象程序中对象的一切活动,只 能通过消息去驱动。消息传递也是对象 间进行通信的唯一方式。
6
二 C++对C在过程语言方面的扩充
7
2 函数原型
C++ 要求在函数的声明中必须明确指出
函数返回值和各个参数的类型,这一形 式就称为函数的原型。例如 int f4(int a, int b) 就是函数f4的原型。 函数原型的一般表示形式为 < 返 回 类 型 >< 函 数 名 >( [< 类 型 1< 参 数 1>,… ,<类型n><参数n>] ); 在程序中,一个函数的原型要求必须出 现在该函数的调用语句之前。