ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.78KB ,
资源ID:8148251      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8148251.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Visual C++面向对象编程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Visual C++面向对象编程.docx

1、Visual C+ 面向对象编程七、面向对象编程1、面向对象将储存在结构中的数据与过程的功能组合成一个单元。2、创建新类型在C+中,程序员可以通过创建所需的任何类型来扩展该语言,每种新类型都可以有与内置类型相同的功能。通过将相关变量组合成结构,提供了C语言中增加新类型的功能。使用typedef语句,可让结构成为一种新的数据类型。typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。3、类和成员类:将一组变量(它们的类型通常不同)和一组相关的函数组合在一起。类可以由各种类型的变量组成,还可以包含其它类对象。类中的变量被称为成员变量

2、或数据成员。成员变量是类的组成部分。类还可以包含函数,它们被称为成员函数或方法。成员函数也是类的组成部分。类中的成员函数通常操纵成员变量。声明类:类声明将有关类的信息告诉编译器。要声明类,课使用关键字class,后跟类名、左大括号、数据成员列表和方法,然后是右大括号和分号。例:class Cat int itsAge; int itsWeight; void Meow();注意:a、必须给所有成员变量、成员函数和类命名。定义对象:声明一个类后,便可以将其用作新类型来声明这种类型的变量。声明新类型对象的方式与声明整型变量相同。例:int age; Cat Tom;4、访问类成员定义实际的Cat对

3、象(如Cat Tom)后,便可以使用句点运算符(.)来访问该对象的成员。使用方法:Tom.itsAge=3;Tom.Meow();给对象赋值,而不是给类赋值。例:Cat.itsAge=3 /wrong正确的方法是:Cat Tom; /就像int x;Tom.itsAge=3; /就像 x=5;类不能有没有声明的功能。例:Cat Tom;Tom.Bark();/类中没有定义Bark函数,因此猫不能叫注意:a、声明和定义不能混为一谈。声明指出类是什么,定义为对象分配内存。a、不能将值赋给类,而应该将值赋给数据成员。5、私有和公有在类中声明还常常使用其他关键字,其中最重要的两个是public和pri

4、vate。关键字public和private用于类的成员:数据成员和成员方法。私有成员只能在类的方法中访问;公有成员可以通过类的任何对象进行访问。默认情况下,所有成员都是私有的。例:class Cat int itsAge; int itsWeight; void Meow();int main() Cat Tom; Tom.itsAge=3;/错误!不能访问私有数据声明公有成员:class Cat public: int itsAge; int itsWeight; void Meow();/此程序用于演示访问一个简单类的公有成员#includeclass Catpublic: int it

5、sAge;int main() using std:cout; using std:endl; Cat Tom; Tom.itsAge=3; coutTom是一只Tom.itsAge岁大的猫。endl; return 0;使用数据成员私有:一个通用的设计规则是,应让类的数据成员私有。为访问类中的私有数据,必须创建被存取器方法(accessor method)的公有函数。这些方法用于设置和获取私有成员变量,它们是成员函数可以在程序的其它地方调用它们来获取和设置私有成员变量的值。存取器函数让你能够将数据的存储细节和使用细节分开,通过使用存取器函数,以后修改数据的存储方式时,不必重新编写使用这些数据

6、的函数。存取器函数还可以包含其他逻辑。比如Cat的年龄不太可能大于100等。/这是一个包含存取器方法的类#includeclass Catpublic: int GetAge(); void SetAge(int Age); int GetWeight(); int SetWeight(int Weight); void Meow();private: int itsAge; int itsWeight;要设置Tom的年龄,可以将年龄传给SetAge()函数。如:Cat Tom;Tom.SetAge(3);注意:a、务必将存取器函数声明为公有。b、 必须通过类的成员函数来访问私有成员变量。c、

7、 尽可能不要将成员变量声明为公有。d、 不要试图在类的外部使用私有成员变量。6、实现类方法存取器函数提供了到类的私有成员数据的公有接口。每个存取器函数以及声明的其他类方法都必须有实现。实现被称为函数的定义。成员函数的定义类似于常规函数:首先指出函数的返回类型,如果函数不返回任何值,则使用void。然后是类名、两个冒号、函数名和参数。/此程序用于演示实现一个简单类的方法#includeclass Catpublic: int GetAge(); void SetAge(int Age); void Meow();private: int itsAge;int Cat:GetAge() retur

8、n itsAge;void Cat:SetAge(int Age) itsAge=Age;void Cat:Meow() std:coutMeown;int main() Cat Tom; Tom.SetAge(3); std:coutTom是一只; std:coutTom.GetAge()岁大的猫。n; Tom.Meow(); return 0;7、构造函数和析构函数初始化类的成员函数,可以使用一个特殊的成员函数:构造函数。构造函数可以根据需要接受参数,但它不能有返回值连void都不行。构造函数是一个与类同名的类方法。声明构造函数后还应声明析构函数。构造函数声明并初始化类对象,而析构函数在对

9、象被销毁后完成清理工作并释放(在构造函数或对象的生命周期中)分配的资源或内存。析构函数总是与类同名,但在前加上了一个()。析构函数没有参数也没有返回值。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。例:为Cat声明一个析构函数Cat();默认构造函数和析构函数:没有参数的构造函数被称为默认构造函数。编译器创建的默认构造函数和析构函数不仅没有参数,而且不执行任何操作。如果希望它们执行一些操作,必须创建自己的默认构造函数或析构函数。使用默认构造函数在某种程度上说,所有对象都必须被构造和析构,在构造和析构过程中,将调用这些不执行任何操作的函数。声明对象时不用传递

10、任何参数。如:Cat Tom;必须有一个下面这样的构造函数:Cat();创建对象时将调用构造函数。若Cat构造函数接受两个参数,则:Cat Tom(3,5);第一个参数可能是年龄,第二个参数可能是重量。若构造函数为默认构造函数,则:Cat Tom;/对象后没有括号/此程序用于演示使用构造函数和析构函数#includeclass Catpublic: Cat(int Age); Cat(); int GetAge(); void SetAge(int age); void Meow();private: int itsAge;Cat:Cat(int Age) itsAge=Age;Cat:Cat

11、()int Cat:GetAge() return itsAge;void Cat:SetAge(int age) itsAge=age;void Cat:Meow() std:coutMeown;int main() Cat Tom(3); std:coutTom是一只Tom.GetAge()岁大的猫。n; Tom.Meow(); return 0;8、const成员函数关键字const可以用来声明不能修改的变量。也可将关键字const用于类中的成员函数。要将类方法声明为const,可在方法声明中将所有参数括起的括号和分号之间放置关键字const。如:void someFunction()

12、const;由于它被声明为const,因此不会修改其所属类的任何数据成员。如果将一个函数声明为const的,而该函数的是实现通过修改某个成员变量的值而修改了对象,编译器将视其为错误。尽可能将方法声明为const的,是一种良好的编程习惯。这样让编译器捕获错误,而不致于称为等到程序运行时才出现bug。9、类声明和方法定义的位置为类声明的每一个函数都必须有定义,这种定义被称为函数实现。定义必须位于编译器能够找到的文件中。也可以将声明放在实现文件中,但这不是一种好的编程习惯。大多数程序员采用的约定是,将声明放在头文件中,该头文件的名称与实现文件相同,但扩展名为.h、.hp或.hpp。例:可以将Cat类

13、的声明放在一个名为Cat.hpp的文件中,而将类方法的定义放在一个名为Cat.cpp的文件中。然后在Cat.cpp的开头加入如下代码,将头文件同.cpp文件关联起来:#include “Cat.hpp”这段代码告诉编译器,将Cat.hpp读入文件中。10、内联实现就像可以请求编译器将常规函数内联一样,也可以将类方法内联,只需在返回类型前加上关键字inline。例:inline int Cat:GetWeight() return itsWeight;也可以将函数的定义放到类声明中,这样,函数将自动成为内联的。如:class Catpublic: int GetWeight() return i

14、tsWeight; void SetWeight (int aWeight);内联函数的函数体紧跟在类方法声明之后,圆括号后没有分号。11、将他类用作成员数据的类一种常见的创建复杂类的方法是,首先声明较简单的类,然后再将其包含到较复杂的类的声明中。先创建一个头文件,声明一个完整的类。/声明一个完整的类/点、线、面积#includeclass Point/声明一个类,储存点的坐标x,ypublic: void SetX(int x) itsX=x; void SetY(int y) itsY=y; int GetX() const return itsX; int GetY() const re

15、turn itsY;private: int itsX; int itsY;class Rectanglepublic: Rectangle(int top,int left,int bottom,int right); Rectangle() int GetTop() const return itsTop; int GetLeft() const return itsLeft; int GetBottom() const return itsBottom; int GetRight() const return itsRight; Point GetUpperLeft() const re

16、turn itsUpperLeft; Point GetLowerLeft() const return itsLowerLeft; Point GetUpperRight() const return itsUpperRight; Point GetLowerRight() const return itsLowerRight; void SetUpperLeft(Point Location) itsUpperLeft=Location; void SetLowerLeft(Point Location) itsLowerLeft=Location; void SetUpperRight(

17、Point Location) itsUpperRight=Location; void SetLowerRight(Point Location) itsLowerRight=Location; int GetArea() const;private: Point itsUpperLeft; Point itsLowerLeft; Point itsUpperRight; Point itsLowerRight; int itsTop; int itsLeft; int itsBottom; int itsRight;/包含类Rectangle#includeRectangle.hRecta

18、ngle:Rectangle(int top,int left,int bottom,int right) itsTop=top; itsLeft=left; itsBottom=bottom; itsRight=right; itsUpperLeft.SetX(left); itsUpperLeft.SetY(top); itsUpperRight.SetX(right); itsUpperRight.SetY(top); itsLowerLeft.SetX(left); itsLowerLeft.SetY(bottom); itsLowerRight.SetX(right); itsLow

19、erRight.SetY(bottom);int Rectangle:GetArea() const int Width=itsRight-itsLeft; int Height=itsTop-itsBottom; return (Width*Height);int main() Rectangle MyRectangle (100,20,50,80); int Area=MyRectangle.GetArea(); std:cout面积为:tArean; std:cout左上角点的横坐标为:; std:coutMyRectangle.GetUpperLeft().GetX(); std:coutn; return 0;12、结构与关键字class极其相似的一个关键字struct,它用来声明结构。在C+中,结构与类相同,只是其成员默认为公有的。可以像声明类一样声明结构,并给它声明数据成员和函数。 q83831295

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1