- 1、本文档共102页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++面向对象程序设计
第七章 类和对象
学习目标
⑴掌握类的定义和使用
⑵掌握对象的创建和使用
⑶掌握构造函数、析构函数的概念和使用
⑷掌握堆对象的概念和使用
⑸掌握静态数据成员和静态成员函数的使用
⑹掌握友元函数和友元类的使用
对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 类是对具有相同或相似性质的对象的抽象。
因此,类是对象的抽象,对象是类的具体化,也可以说对象是类的实例。
C++的类是由C语言中的结构体类型演变而来的。C++中的类的声明方法和结构体类似。
struct student
{
int num;
char name[20];
char sex;
};
类的定义与结构体的区别在于,除了包括数据以外,类还包括操作数据的一组函数。类的数据部分称为数据成员或者属性。类的函数部分称为成员函数或者方法。
7.1 类的定义和使用
7.1.1 类定义格式
类中的成员有数据成员和函数成员两种,数据成员是用来描述对象属性的静态成员,函数成员是用来描述对象属性的动态成员。
class 类名
{
public:
公有数据成员或函数成员的说明
protected:
保护的数据成员或函数成员的说明
private:
私有的数据成员或函数成员的说明
};
公有的成员既可以被本类的成员函数访问,也可以在类外被该类的对象访问
保护的成员可以在本类及其派生类的成员函数中访问
私有的成员只能在该类的范围内被本类的成员函数访问
class hero
{
private: //数据成员(属性)
int level;
int life;
int blue;
public: //成员函数(方法)
void move()
{
……
}
void attack()
{
……
}
};
【例7-1】一个日期类定义的例子。
#include iostream.h
class Date //定义日期类
{
public:
void SetDate(int y, int m, int d) //设置日期成员函数
{
year = y;
month = m;
day = d;
}
int IsLeapYear() //判定是否闰年成员函数
{
return(year%4==0 year%100!=0)||(year%400==0);
}
void Print() //输出日期成员函数
{
coutyear/month/dayendl;
}
private:
int year, month, day; //数据成员
};
void main()
{
Date today; //定义日期对象
today.SetDate(2007,12,31);
today.Print();
couttoday.year; //非法
}
7.1.2 成员函数的定义位置
类的定义通常归入头文件中,称为类的接口;类的成员函数的定义通常归入程序文件,称为类的实现;
类的成员函数在类外定义时,函数名前要加上所在的类名和类区分符“::”
类的成员函数在类外定义时格式:
返回类型 类名::成员函数名(参数表)
{ //函数体 }
多文件结构来改写日期类定义的例子
//Date.h
class Date //定义日期类
{
public:
void SetDate(int y, int m, int d); //设置日期成员函数
int IsLeapYear(); //判定是否闰年成员函数
void Print(); //输出日期成员函数
private:
int year, month, day; //数据成员
};
//Date.cpp
#include iostream.h
#include Date.h
void Date::SetDate(int y, int m, int d) //设置日期成员函数
{
year = y
文档评论(0)