visual c++类和对象专题讲解

visual c++类和对象专题讲解

ID:14367382

大小:453.00 KB

页数:129页

时间:2018-07-28

visual c++类和对象专题讲解_第1页
visual c++类和对象专题讲解_第2页
visual c++类和对象专题讲解_第3页
visual c++类和对象专题讲解_第4页
visual c++类和对象专题讲解_第5页
资源描述:

《visual c++类和对象专题讲解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章类和对象要求掌握:C++怎样构造类和使用类构造函数和析构函数对象的指针本章主要内容类的定义成员函数的定义对象的定义构造函数与析构函数C++的封装性实例分析§3.1类和对象的基本概念3.1.1C++类的构成类是一种将数据和操作合并为单一结构的类型定义。用方程式表示:类=数据+操作(函数)C++类的构成包括类的声明、类的定义两个部分。一、类的声明类的声明包括:类的成员声明和类成员的访问控制声明。形式:class类名{private:私有数据和函数只能由public中的函数使用protected:保护

2、数据和函数保护成员被该类和它的派生类访问public:公共数据和函数可供用户使用};类定义的结束标志“;”容易被漏掉如:关键字class用以声明一个类class后面的CTime是用户自定义类名classCTime{private:inthour;intminute;intsecond;数据成员public:voidSetTime(inth,intm,ints);intGetHour(){returnhour;}成员函数intGetMinute(){returnminute;}intGetSecond(){returns

3、econd;}};类是由数据和函数构成,它们称为类的成员。公有成员在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。classA{intx;public:inty;voidSetXY(int,int);};voidA::SetXY(inta,intb){x=a;y=b;}voidmain(){Aas;as.SetXY(5,5);//Okas.y=5;//Ok}私有成员在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。如果紧跟在类名称的后面声

4、明私有成员,则关键字private可以省略。classA{intx;public:inty;voidSetXY(int,int);};voidA::SetXY(inta,intb){x=a;y=b;}voidmain(){Aas;as.SetXY(5,5);//Okas.x=5;//Error}Note:1.类名后面的{}表示类的声明范围,最后的分号表示类声明的结束。2.建议把所有的私有成员和公有成员归类放在一起,并将私有成员放在公有成员的前面。3.数据成员可以是任意数据类型,但不能用auto、register或ext

5、ern进行说明。例:classabcd{autoa;//非法registerb;//非法externc;//非法intd;public:intget(d);};4.不能在类的声明中给类的数据成员赋初值;在类对象定义之后才能给数据成员赋初值。例:classabc{chara=’q’;//非法intb=33;//非法public:intget(b);};二、成员函数的定义(类的定义)C++提供两种方式定义成员函数,类中的成员函数的定义既可放在类中,也可放在类的外面。第一种方式:在类的声明中,只给出成员函数的原型(用现代风格

6、说明);而成员函数的定义放在类体的外部,称为外联函数。成员函数的定义放在外面,需在函数名前面加上类名和作用域区分符“::”。成员函数体在类的外部定义。其形式为:返回类型类名::函数名(参数表){//函数体类名加在成员函数名之前,而不是}加在函数的返回类型前classCTime{private:CTime::hourinthour;intminute;intsecond;public:voidSetTime(inth,intm,ints);intGetHour(){returnhour;}intGetMinute(){r

7、eturnminute;}intGetSecond(){returnsecond;}};CTime::GetSecond()inthour=0;//全局变量intminute=0;intsecond=0;voidSetTime(inth,intm,ints){::hour=h;::不跟类名时,表示全局数据或全局::minute=m;函数(即非成员函数)::second=s;}//全局函数voidmain(){CTimet;::SetTime(5,5,5);//调用全局函数t.SetTime(::hour,::minut

8、e,::second);//调用类的成员函数}例:声明并定义坐标点类classpoint{intx,y;public:voidsetpoint(int,int);intgetx();intgety();};voidpoint::setpoint(inta,intb){x=a;y=b;}在类定义的外部定义成员函数,必须在该函数前面使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。