文档介绍:1. 面向对象程序设计
数据
成员函数
成员函数
数据
成员函数
成员函数
数据
成员函数
成员函数
对象1
对象2
对象3
类:是具有相同功能的对象的集合,用它来创建对象
类的定义
C++语言的类:
是一种用户自己定义的数据类型,和其他数据类型不同的是,组成这种类型的不仅可以有数据,而且可以有对数据进行操作的函数。
C++规定,任何数据类型都必须先定义后使用,类也不例外。
1、C++对C的扩展
【例4-1】一个包含了数据和数据操作函数的复数结构。
#include<iostream>
Using namespace std
plex{
double r;
double i;
void init( double rr,double ii)
{ r=rr; i=ii; }
double real( ) { return r; }
double image( ) { return i; }
};
类的定义
返回本节
一般形式为:
class 类名{
public:
<公有数据和函数>
protected:
<保护数据和函数>
private:
<私有数据和函数>
};
有效的C++标识符,不能是关键字,以大写字母开始
数据成员和成员函数
分号“;”类声明的结束标志不能漏掉
4/18/2018
第3章类和对象
4
1、信息:设置访问权限的原因隐藏
将数据和操作数据的函数包装在一起的主要目的是实现数据封装和信息隐藏,信息隐藏就是使结构中的数据和对数据进行操作的细节对外不可见。
2、成员的访问控制
public
可以从类的外部(使用者)访问
抽象,定义类的接口
private
仅供类的内部(自身成员函数或友员函数)访问
封装,信息隐藏
protected
供结类的内部(自身成员函数或友员函数)及后代访问
访问控制
访问权限
3、plex类
#include <>
plex{
private:
double r;
double i;
public:
void init(double rr,double ii)
{r=rr;i=ii;}
double real( ) {return r;}
double image( ) {return i;}
};
void main(){
Complex a;
(2,3);
cout<<()
<<"+“
<<()
<<"i"<<endl;
=6; //错误
=; //错误
}
成员函数的实现
成员函数的实现,可以放在类体内,也可以放在类体外,但必须在类体内给出原型说明。
放在类体内定义的函数被默认为内联函数,而放在类体外定义的函数是一般函数,如果要定义为内联函数则需在前面加上关键字inline。
成员函数的实现
在类体外定义成员函数的一般形式为:
<返回类型> <类名>::<成员函数名>(<参数说明>)
{
函数体
}
“::”称为作用域运算符,“<类名>::”表明其后的成员函数是在这个类中声明的。
成员函数的实现
【】定义一个点类(Point),示例类体内实现成员函数
#include <iostream>
using namespace std;
class Point
{public:
void setxy(int,int)
{ X=x;
Y=y;
}
void displayxy()
{
cout<<"The postion of point:";
cout<<"("<<X<<","<<Y<<")"<<endl;
}
private: int X,Y;
};
成员函数的实现
【】定义一个点类(Point),示例类体外实现成员函数
#include <iostream>
using namespace std;
class Point
{public:
void setxy(int,int);
void displayxy();
private:
int X,Y;
};
//点类的实现部分
void Point::setxy(int x,int y)
{
X=x;
Y=y;
}
void Point::displayxy()
{
cout<<"("<<X<<","<<Y<<")"<<endl;
}
1、对象与类的关系
类和对象
class: 数据类型
object:类型的实例
类型和实例
type
instance
对象