欢迎来到天天文库
浏览记录
ID:40238266
大小:723.50 KB
页数:56页
时间:2019-07-28
《C++程序设计教程 杨国兴及例题 第6章 类与对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章类与对象6.1类与对象6.2构造函数与析构函数6.3类的组合6.4友元6.5静态成员6.6对象数组与对象指针6.7this指针6.1类与对象6.1.1类与对象的概念对象(object):是现实世界中的客观事物。类(class):是把具有相同属性的事物划分为一类,从而得出的抽象概念。面向对象程序设计中的类,是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了抽象的描述。对象是类的实例,类是同种对象的抽象。第6章类与对象如:确定大小和颜色的矩形都是一个个具体的对象,而将所有矩形的共同特点抽象出来,就是一个
2、矩形类。这些共有的属性包括颜色(color),左上角坐标(left,top),长(length)和宽(width)等;对这些属性的处理包括改变矩形的颜色(SetColor)和大小(SetSize),移动矩形到新的位置(Move),绘出矩形(Draw)等。将矩形的这些属性和方法作为一个整体,封装在一起形成一个矩形类。6.1类与对象6.1.2类的声明class类名{private:私有数据成员和成员函数;protected:保护数据成员和成员函数;public:公有数据成员和成员函数;};第6章类与对象例6.1定义一个长方形
3、类CRect,其数据成员包括颜色,左上角坐标,长和宽,其函数成员包括改变矩形的颜色(SetColor)和大小(SetSize),移动矩形到新的位置(Move),绘出矩形(Draw)。classCRect{private:charcolor[10];intleft;inttop;intlength;intwidth;public:voidSetColor(char*c);voidSetSize(intl,intw);voidMove(intt,intl);voidDraw();};第6章类与对象例6.1(续一)voidCR
4、ect::SetColor(char*c){strcpy(color,c);}voidCRect::SetSize(intl,intw){length=l;width=w;}voidCRect::Move(intt,intl){top=t;left=l;}voidCRect::Draw(){cout<<"矩形左上角坐标为("<5、第6章类与对象域运算符(::)用于指出该函数是哪一个类的成员函数,用法:类名::函数名(参数表)例6.1(续二)voidmain(){CRectr;r.SetColor("Red");r.Move(10,20);r.SetSize(100,200);r.Draw();r.Move(50,50);r.SetColor("Blue");r.Draw();}第6章类与对象定义CRect类的对象,定义对象的格式:类名对象名1,对象名2,……访问对象的公有成员,格式为:对象名.公有成员函数名(参数表)对象名.公有数据成员名程序运行6、结果为:矩形左上角坐标为(20,10)矩形长和宽分别为100,200矩形的颜色是Red矩形左上角坐标为(50,50)矩形长和宽分别为100,200矩形的颜色是Blue6.1类与对象6.1.3成员的访问控制private:私有访问权限,只允许类中的成员函数访问,其他函数不能访问。protected:保护访问权限,在第7章中介绍。public:公有访问权限,在任何函数中都可以访问。例:若主函数中有以下语句,是否正确?CRectr;strcpy(r.color,“red”);r.top=10;r.left=20;第6章类与对象7、在主函数中不能访问类的私有成员6.1类与对象6.1.3成员的访问控制(续)若不指定类中的成员的访问权限,则默认为私有成员。类也可以由struct关键字声明,strust与class的区别是:如果不指定访问权限,前者缺省的访问权限是公有的,而后者是私有的。用struct声明前面的矩形类:structCRect{voidSetColor(char*c);voidSetSize(intl,intw);voidMove(intt,intl);voidDraw();private:charcolor[10];intleft;int8、top;intlength;intwidth;};第6章类与对象6.1类与对象6.1.4类的成员函数1.类成员函数的定义方式在类外部定义:如前面定义的长方形类的成员函数一般格式为:函数类型类名::成员函数名(参数说明){函数体}在类中定义:如classCRect{……public:voidsetcolor(char*
5、第6章类与对象域运算符(::)用于指出该函数是哪一个类的成员函数,用法:类名::函数名(参数表)例6.1(续二)voidmain(){CRectr;r.SetColor("Red");r.Move(10,20);r.SetSize(100,200);r.Draw();r.Move(50,50);r.SetColor("Blue");r.Draw();}第6章类与对象定义CRect类的对象,定义对象的格式:类名对象名1,对象名2,……访问对象的公有成员,格式为:对象名.公有成员函数名(参数表)对象名.公有数据成员名程序运行
6、结果为:矩形左上角坐标为(20,10)矩形长和宽分别为100,200矩形的颜色是Red矩形左上角坐标为(50,50)矩形长和宽分别为100,200矩形的颜色是Blue6.1类与对象6.1.3成员的访问控制private:私有访问权限,只允许类中的成员函数访问,其他函数不能访问。protected:保护访问权限,在第7章中介绍。public:公有访问权限,在任何函数中都可以访问。例:若主函数中有以下语句,是否正确?CRectr;strcpy(r.color,“red”);r.top=10;r.left=20;第6章类与对象
7、在主函数中不能访问类的私有成员6.1类与对象6.1.3成员的访问控制(续)若不指定类中的成员的访问权限,则默认为私有成员。类也可以由struct关键字声明,strust与class的区别是:如果不指定访问权限,前者缺省的访问权限是公有的,而后者是私有的。用struct声明前面的矩形类:structCRect{voidSetColor(char*c);voidSetSize(intl,intw);voidMove(intt,intl);voidDraw();private:charcolor[10];intleft;int
8、top;intlength;intwidth;};第6章类与对象6.1类与对象6.1.4类的成员函数1.类成员函数的定义方式在类外部定义:如前面定义的长方形类的成员函数一般格式为:函数类型类名::成员函数名(参数说明){函数体}在类中定义:如classCRect{……public:voidsetcolor(char*
此文档下载收益归作者所有