类的类型定义.ppt
文本预览下载声明
3.1 类的定义 3.1.1 类的定义 定义用户定义的类型Date,考虑对该类型数据的操作,可能有: struct Date { int d,m,y;}; void init_date(Date ,int,int,int); //初始化 void add_year(Date ,int n); //引用参数 void add_month(Date ,int n); void add_day(Date ,int n); 3.1.2 数据封装 3.1.3 类的实例就是对象 在系统实现中,类是一种共享机制,它提供了一类对象共享其类的操作实现。 类是一种封装机制,它将一组数据和对该组数据的操作封装在一起。 类是对象的模型,对象承袭了类中的数据和方法。只是各实例对象的数据初始化状态和各个数据成员的值不同。 3.1.4 类外访问成员的方法 3.1.5 类类型符合抽象原则 类是C++语言的关键概念,是一种用户定义的类型;类是数据隐藏和封装的单位,它将细节封装起来,只允许通过公有段的数据和函数被访问,从而支持了数据抽象的机制。 缺省时class类包括的数据成员和成员函数都是私有的。 如果要在class 类中定义公有数据,需要显式地给出关键字public. 3.1.6 C++语言的类 3.2 构造函数和析构函数 3.2.1 简单构造函数和析构函数 3.2.2 复制构造函数 3.2.1 简单构造函数和析构函数 1. 构造函数 2. 重载构造函数 3. 具有缺省参数的构造函数 4. 缺省的构造函数 5. 析构函数 6. 对象的创建和释放 1. 构造函数 一个类中的数据成员是不能直接初始化的。 如: class X { int num=0; //错误 … }; 构造函数的作用: 1) 分配一个对象的数据成员的存储空间。 2)执行构造函数,一般是初始化一个对象的数据成员。 对于某些特殊的数据成员的初始化,只能采用表达式。 例 3-5 该类的所有对象的圆心都初始化为原点。 class Circle { int x; int y; float radius; public: Circle(int intx,int inty) { x=intx;y=inty; //赋值语句方式初始化数据成员 } … }; 该类的对象的圆心可以初始化为不同的位置。 上例的构造函数也可以写为: Circle(int intx,int inty): x(intx),y(inty) { } 创建对象时,需要自动调用构造函数,如果构造函数有参数,那么,创建对象时必须给出对应的构造函数的实参。 例 3-6 class Date { int d,m,y ; public: Date(int dd,int mm,int yy) //构造函数 { d=dd;m=mm;y=yy;} … }; 2. 重载构造函数 一个类可以提供多个构造函数,它们的参数必须互不相同,可以提供不同的初始化要求。 3. 具有缺省参数的构造函数 构造函数可以有缺省的参数。 class Date { int d,m,y; public: Date(int dd=0
显示全部