第22章VisualC++_第1页
第22章VisualC++_第2页
第22章VisualC++_第3页
第22章VisualC++_第4页
第22章VisualC++_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 #include void main() double r, area; / 声明变量 coutr; / 从键盘上输入r的值 area = 3.14159 * r * r; / 计算面积 cout圆的面积为:arean; / 输出 该程序经编译、链接、运行后,屏幕上显示:输入圆的半径:此时等待用户输入,当输入10并按Enter键后,屏幕显示:圆的面积为:314.159Press any key to continue例例Ex_StructToClass 从结构到类的示例从结构到类的示例#include struct MY_CIRCLE int ID; /圆的ID.int x, y; /圆心坐

2、标int radius ; / 半径;float GetArea(MY_CIRCLE circle) / 计算面积return(3.14*circle.radius*circle.radius); void main() MY_CIRCLE C1;C1.radius=10; C1.ID=1;cout圆C1.ID的面积是:GetArea(C1)endl;运行结果如下:圆1的面积是314n类是抽象的概念,对象是真实的个体。我们可以说类是抽象的概念,对象是真实的个体。我们可以说Kitty猫的体重是猫的体重是1.5kg,而不能说猫类的体重是,而不能说猫类的体重是1.5kg;可以说刘翔在跨栏比赛中夺冠,

3、而不说人类在跨栏比可以说刘翔在跨栏比赛中夺冠,而不说人类在跨栏比赛中夺冠。一般情况下我们认为状态是描述具体对象赛中夺冠。一般情况下我们认为状态是描述具体对象而非描述类的,行为是由具体对象发出的而非类发出而非描述类的,行为是由具体对象发出的而非类发出的。的。 类一般分为声明部分和实现部分。类体C+中定义类的一般格式如下: class private: public: ; class是定义类的关键字,class的后面是用户定义的类名。类中的数据和函数是类的成员,称为数据成员和成员函数。 定义类时还应注意:定义类时还应注意: (1) 在在“public:”或或“private:”后面成员都是公有或私

4、后面成员都是公有或私有的,直到下一个有的,直到下一个“public:”或或“private:”出现为止。出现为止。 (2)关键字)关键字public和和private在类中出现多次,前后的顺在类中出现多次,前后的顺序没有关系。序没有关系。 (3)除了)除了public和和private外,关键字外,关键字protected也可修也可修饰成员的类型。饰成员的类型。 (4)数据成员的类型可以是任意的,包含整型、浮点型、)数据成员的类型可以是任意的,包含整型、浮点型、字符型、数组、指针等。字符型、数组、指针等。 Visual C+ 6.0为用户创建的应用程序框架中都是将各为用户创建的应用程序框架中都

5、是将各个类以个类以.h和同名的和同名的.cpp文件来组织的。文件来组织的。MY_CIRCLE类定义了一个getArea()函数。class MY_CIRCLE public:int x,y, radius;int ID;public:double getArea();MY_CIRCLE();virtual MY_CIRCLE();double MY_CIRCLE:getArea() return 3.14*radius*radius; MY_CIRCLE:MY_CIRCLE() MY_CIRCLE:MY_CIRCLE() 一个类定义后,就可以定义该类的对象,如下面的格式:一个类定义后,就可以定

6、义该类的对象,如下面的格式: 类名是用户已定义过的类的标识符,对象名可以有一个或多个,类名是用户已定义过的类的标识符,对象名可以有一个或多个,多个时要用多个时要用 逗号分隔。逗号分隔。 MY_CIRCLE c1, *c2;一个对象就是该对象的类所定义的成员,引用时可用下列方式:一个对象就是该对象的类所定义的成员,引用时可用下列方式: .()前者表示引用数据成员,后者表示引用成员函数。前者表示引用数据成员,后者表示引用成员函数。“.”是成员是成员运算符运算符 c1.x, c1.GetArea();对于指针对象的成员引用可用下列方式:对于指针对象的成员引用可用下列方式:-()c2-GetArea(

7、); c2-ID“-”也是一个成员运算符,与也是一个成员运算符,与“.”运算符的区别是:运算符的区别是:“-”用来用来访问指针对象的成员,而访问指针对象的成员,而“.”用来访问一般对象的成员。用来访问一般对象的成员。 class MY_CIRCLE public:int x,y, radius;int ID;public:double getArea();MY_CIRCLE();virtual MY_CIRCLE();double MY_CIRCLE:getArea() return 3.14*radius*radius; MY_CIRCLE:MY_CIRCLE() MY_CIRCLE:MY_

8、CIRCLE() main()MY_CIRCLE C1;C1.ID=20; C1.radius=10;cout圆C1.ID的面积:C1.getArea()endl; C+规定:构造函数必须与相应的类同名构造函数规定:构造函数必须与相应的类同名构造函数不能指定函数返回值的类型,也不能指定为不能指定函数返回值的类型,也不能指定为void类型。类型。 class MY_CIRCLE public:int x,y, radius;int ID;public:double getArea();MY_CIRCLE();virtual MY_CIRCLE();double MY_CIRCLE:getArea

9、() return 3.14*radius*radius; MY_CIRCLE:MY_CIRCLE() MY_CIRCLE:MY_CIRCLE() 析构函数也要与相应的类同名,并在名称前面加上一个“”符号。析构函数只有在两种情况下才会被自动调用: (1) 当对象定义在一个函数体中,该函数调用结束后,析构函数被自动调用。 (2) 用new为对象分配动态内存后,当使用delete释放对象时,析构函数被自动调用。 class MY_CIRCLE public:virtual MY_CIRCLE();MY_CIRCLE:MY_CIRCLE() class MY_CIRCLE private:int x

10、,y, radius;public:int ID;double getArea();void setradius(int r);MY_CIRCLE();virtual MY_CIRCLE();double MY_CIRCLE:getArea() return 3.14*radius*radius; void MY_CIRCLE:setradius(int r) radius=r;MY_CIRCLE:MY_CIRCLE() x=10;y=20;MY_CIRCLE:MY_CIRCLE() main()MY_CIRCLE C1;C1.ID=20; C1.setradius(10);cout圆C1.ID的面积是:C1.getArea()SetMapMode (MM_TEXT);/设置映射模式:像素CPen pen(PS_SOLID,3,RGB(0,0,0);pDc-SelectObject(pen);pDc-MoveTo(20,20);pDc-LineTo(200,200);1. 设有一个描述坐标点的CPoint类,其私有变量x和y代表一个点 的x、y坐标值。编写程序实现以下功能:利用构造函数传递参 数并设其默认参数值为60和75,利用成员函数display输出这一默认的值;利用公

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论