程序设计基础
C/C++
第10章类和对象
面向对象程序设计概述
类的声明和对象创建
一个简单的类:Point类
私有成员和公有成员
对象的构造和析构
继承或子类化
创建共享接口
多态性
虚函数
一个复杂的类:Fraction
内联函数
使Fraction类对象有多种行为
一、概述
什么是“类”
对象是现实世界中存在的事物
请看图形点的示例
(5,5)
y
x
0
静态属性:位置(5,5),红颜色
动态属性:移动(5,5)->(7,2)
一个点
(4,5)
y
x
0
(2,8)
(-5,3)
(3,-3)
什么是“对象”
静态属性:x坐标,y坐标,颜色
动态属性:移动,输出位置
点类
类是具有相同属性对象的抽象描述
请看点类示例
(7,2)
数据成员
成员函数
对象与类
看图试一试
y
x
0
静态属性:
动态属性:
一个圆
(4,5)
y
x
0
(2,8)
(-5,3)
(3,-3)
数据成员:
成员函数:
圆类
(5,5)
使用class关键字
二、类的声明
class Point
{
int x;
int y;
void move(int nx,int ny)
{ x=nx; y=ny; }
} ;
数据成员
成员函数
类名
class Circle
{
double r;
int x, y;
double area()
{ return r*r*; }
void show_centre ()
{
cout<<“圆心是(”<<x
<<“,”<<y<<“)”;
}
}
类体
练****br/>给圆添加圆心属性并能输出圆心坐标
;
创建对象与定义变量相同
二、创建对象(类实例化)
class Point
{
int x;
int y;
void move(int nx,int ny)
{ x=nx; y=ny; }
void set()
{ x=0; y=0; }
} ;
Point a;
Point b;
a
b
x
y
x
y
分配内存空间
对象a和b
怎么都没有值啊
私有成员:类外不可以访问
公有成员:类外可以访问
三、私有、公有与封装
class Point
{
private:
int x;
int y;
public:
void move(int nx,int ny)
{ x=nx; y=ny; }
void set()
{ x=0; y=0; }
}
void main()
{
Point a, b;
a . set(); b . set();
a . move(1,1);
b . move(7,5);
}
a
b
x
y
x
y
分配内存空间
访问属性关键字
0
0
0
0
1
1
7
5
改写程序
Point类
x
y
move(int,int)
set()
封装:细节隐藏
成员运算符
对外接口
构造函数用来做对象初始化的工作
四、构造和析构函数
void main()
{
Point a;
Point b(3,2);
(1,1);
(7,5);
}
a
b
x
y
x
y
0
0
3
2
1
1
7
5
class Point
{ int x;
int y;
public:
Point(int x1, int y1)
{ x=x1; y=y1; }
void move(int nx,int ny)
{ x=nx; y=ny; }
} ;
构造函数:
看程序
Point()
{ x=0; y=0; }
Point(int x1, int y1)
{ x=x1; y=y1; }
可以缺省
在创建对象时由系统自动调用
函数可以重载
无返回结果类型符
与类同名
~Point() { }
析构函数:
可以缺省
在释放对象时由系统自动调用
函数不可以重载
无返回结果类型符
可做释放对象前的扫尾工作
请看分数类示例
五、继承与派生类
class Fraction
{ int num;
int den;
public:
Fraction(int nn,int nd)
{ num =nn; den =nd; }
double fraction_value()
{ return num*/
信息咨询业务流程 来自淘豆网www.taodocs.com转载请标明出处.