网站大量收购独家精品文档,联系QQ:2885784924

(C++程序的设计课件)第三章 基于对象的程序的设计(续).ppt

(C++程序的设计课件)第三章 基于对象的程序的设计(续).ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(C++程序的设计课件)第三章 基于对象的程序的设计(续).ppt

2018-5-24 1 1 C++与C# 2018-5-24 2 第三章 基于对象的程序设计 (续) 2018-5-24 3 Student * ps1 = new Student (“lisi”, 3, 17); …… delete ps1; //ps1-name并没有删除 3.6 析构函数 析构函数是构造函数的互补,为生命期即将结束的类对象自动释放资源。析构函数也是隐式自动调用的。 注意:析构函数的名字是在类名前加上波浪线~ ,它不返回任何值也没有任何参数。尽管我们可以为一个类定义多个构造函数,但是我们只能提供一个析构函数,它将被应用在类的所有对象上。 2018-5-24 4 class Student{ public: Student(const char * str, int i, int a=18); Student (); Student (const Student other ); ~Student(); …… } Student::~Student() { delete []name; } void main() { Student st1(“lisi”, 1, 17 ); Student *st2 = new Student(“zhangsan”, 2, 19); …… delete st2; …… } 2018-5-24 5 class Student{ public: …… int getAge() { return age; } int setAge(int a) { age = a; } … private: char * name; int id; int age; } const Student st1(“lisi”, 1, 18); int age = st1.getAge(); …… st1.setAge(20); ? 3.7 const成员函数 只有被声明为const 的成员函数才能被一个const 类对象调用,关键字const 被放在成员函数的参数表和函数体之间,对于在类体之外定义的const 成员函数,我们必须在它的定义和声明中同时指定关键字const 2018-5-24 8 统计创建的所有学生对象的个数? 学生人数不是任何一个具体学生的属性,具有全局性 若用一个全局变量记录学生人数,缺点: 容易被误修改,不安全。 容易和其它全局变量重名。 3.8 类的静态成员 2018-5-24 9 类相当于一个数据类型,当说明一个某类的对象时,系统就为该对象分配一块内存单元来存放类中的所有成员。但在某些应用中,需要程序中属于某个类的所有对象共享某个数据。为此,一个解决的办法就是将所要共享的数据说明为全局变量,但这将破坏数据的封装性;较好的解决办法是将所要共享的数据说明为类的静态成员。 2018-5-24 10 静态数据成员 C++中,同一个类定义多个对象时,每个对象拥有各自的数据成员(不包括静态数据成员),而所有对象共享一份成员函数和一份静态数据成员。静态数据成员是类的所有对象中共享的成员,而不是某个对象的成员,因此可以实现多个对象间的数据共享。静态数据成员不属于任何对象, 它不因对象的建立而产生,也不因对象的析构而删除,它是类定义的一部分,所以使用静态数据成员不会破坏类的隐蔽性。 对静态数据成员的操作和一般数据成员一样,定义为私有的静态数据成员不能由外界访问。静态数据成员可由任意访问权限许可的函数访问。可以在类的成员函数中改变静态数据成员。 2018-5-24 11 静态数据成员不从属于任何一个具体对象,所以必须对它初始化,且对它的初始化不能在构造函数中进行。类中用关键字static修饰的数据成员叫做静态数据成员。 (1)静态数据成员的定义与一般数据成员相似,但前面要加上static关键词。 (2)静态数据成员的初始化与一般数据成员不同,静态数据成员初始化的格式如下: 类型 类名::静态数据成员=值; (3)在引用静态数据成员时采用格式: 类名::静态数据成员 2018-5-24 12 静态成员函数 静态成员函数的定义和其他成员函数一样。但在说明时需注意静态成员函数不得说明为虚函数。静态成员函数与静态数据成员类似,也是从属于类,静态成员函数的定义是在一般函数定义前加上static关键字。调用静态成员函数的格式如下: 类名::静态成员函数名(参数表); 静态成员函数与静态数据成员一样,与类相联系,不与对象相联系,只要类存在,静态成员函数就可以使用,所以访问静态成员函数时不需要对象。如果用对象去调用静态成员函数,只是用其类型。

文档评论(0)

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

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

1亿VIP精品文档

相关文档