C中类和对象.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在类内可以访问所有的static数据成员,采用直接访问方式。 class counter { static int count; public: void set(int num){ count=num; } void show( ){ coutcount; } }; int counter::count=0; void main( ) { counter a,b; a.show(); b.show(); a.set(10); a.show(); b.show(); //coutcounter::countendl; } 成员函数也能被说明为静态的。与静态数据 成员一样,静态成员函数属于类而不是某个 类对象。 因此,在类外调用一个公有静态成 员函数,不需要指明对象或指向对象的指针。 其访问方式为: 类名::静态公有成员函数名(参数列表) * (2)静态成员函数 一般使用静态成员函数来访问静态数据成员; 若在静态成员函数中要访问非静态成员时, 必 须明确指出该静态成员函数在哪个对象上操作, 必须要有限定词(即需要通过对象或指向对象的 指针进行),一般也就需要类类型作静态成员函 数的参数类型(除非是使用全局对象)。 #includeiostream.h class integer { private: int a; static int b; public: static void set(int n1,int n2,integer obj); }; int integer::b=0; void integer:: set(int n1,int n2,integer obj) { obj.a=n1; b=n2; couta=obj.aendl; coutb=bendl; } void main() { integer obj1; integer::set(1,2,obj1); obj1.set(3,4,obj1); } 3.1.6 C++的类 C++语言的类共有三种方式:class类、struct类和union类。 1 class类 class类是C++语言中最典型的抽象数据类型。 1) class类的一般形式 class类名 { private: 私有段数据及函数; public: 公有段数据及函数; }; 2) 无名类: 没有类名的类称为无名类。 class { … } global; 无名类只能定义一个对象。 3)空类: class empty { }; 空类没有任何成员,包括数据和函数。空类可以定义多个对象,各个对象具有不同的地址。 2 类与结构 在C++中,结构是另外一种形式的类。C++中的结构也可以包括数据和成员函数。C+ +的结构和类的差别在于缺省时,类的成员是私有的,而结构的成员是公有的。 除此以外, 类与结构有完全相同的功能。所以结构又称为其全部成员都是公有成员的类。 struct 类包括的数据成员和成员函数都是公有的。如果要在结构类中定义私有数据,需要显式地给出关键字 private。 一般情况下,C++程序员都用类来定义对象的形式,而用C的方式使用结构。 3 类与联合 联合是将所有元素都存储在同一位置上的结构。在C++中,联合也是一种类。联合的所有成员只能为公有成员。关键字 private不能用于联合(protected也不能用)。 注意:虽然 C++ 赋予联合更大的能力及灵活性,并不意味必须以这种方式来使用它们。如果仅需 C 式的联合,最好以 C 的方式使用它。 * * class Circle { private: int x; int y; float fRadius; public: void SetXY(int a,int b); void SetRadius(float r); void Move(int newx,int newy); }; 一个类应该包括哪些数据成员,可以从两个方面考虑:所有这个类的对象都应该有什么属性;每一个具体的该类的对象应该包括哪些属性。 如对圆的考虑,所有的圆都应该有圆心和半径两个属性;每一个具体的圆应该包括自己的圆心和半径。 class Circle { int x; int y; float radius; public: void set_xy_r(int a,int b,float r); void move(int newx,int newy);

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档