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

《C++程序设计教程》课件第2章.ppt

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

3.下列程序是一个产品类,请补全程序。要求:购买产品时能显示出产品、单价、购买量、收入和找回的信息。在购买时若钱款不足,则输出钱不够信息。若客户购买量超过产品量时,则输出库存量不够信息。每完成一笔交易就输出如下清单。(2)静态成员函数不能访问对象成员。静态成员函数与类相联系,不与任何对象相联系,故不能在静态成员函数中对非静态成员进行访问。既不能访问非静态成员函数,也不能访问非静态数据成员。

(3)静态成员函数与非静态成员函数的根本区别是:静态成员函数没有一个指向当前对象的this指针。

(4)不能将静态成员函数声明为const函数。

【例2-21】对上面注意点的说明。【例2-22】演示静态成员的使用。下面将班级学生总数设置为静态成员total,通过创建对象自动增加,通过析构对象自动减小。

//student.h

#ifndefSTUDENT_H

#defineSTUDENT_H

classStudent

{public://student.cpp //类的实现称之为类的定义

#includeiostream.h

#includestring.h

#includestudent.h

intStudent::total=0; //静态数据成员要求初始化Student::Student(char*pName)

{coutcreateonestudent\n;

strcpy(name,pName);

total++; //自增,成员函数访问静态成员

couttotalendl;

}

Student::~Student()

{coutdestructonestudent\n;

total--; //每析构一个对象,学生表减1

couttotalendl;

}intStudent::number() //静态成员函数的实现

{returntotal;}

//stu.cpp

#includeiostream.h

#includestudent.h

voidfun()

{Students1;Students2;

coutStudent::number(); //调用静态成员函数用类名引导

coutendl;

}

voidmain()

{fun();coutStudent::number()endl;}在构造函数中进行静态成员的自增,这样每创建一个对象,学生数自动加1。在析构函数中进行静态成员的自减,这样每取消一个对象,学生数自动减1。●?与类同名的成员函数称为构造函数。它没有返回类型,它在创建对象时自动被调用,它的功能就是初始化类的对象。

●?让构造函数完成初始化以外的工作不是好方法。

●?构造函数可以带参数,也可以带默认参数。让构造函数带默认参数是好方法。

●?在定义类时使它带有默认构造函数,可减少麻烦。本章要点●?析构函数用来取消对象。它可以做任何事情,但一般来说它是做善后工作的。它没有返回类型,没有参数,不能随意调用。

●?一个类只能有一个析构函数,它是在类对象生命结束的时候由系统自动调用的。

●?当某类的对象没有在堆中分配空间时,可用系统默认的析构函数取消。

●?C++中的new和delete是运算符,它们具有自动调用构造函数和析构函数的能力。

●?关键字const可用于定义常量,必须在定义的同时初始化。

●?不要将C或C++中已定义的关键字重新定义。●?对于不需要修改的对象或成员函数,可以用const指明。

●?const对象内的数据是不能改变的,?只有const成员函数才能对它的数据成员进行访问。

●?const成员函数只能读取数据成员,不能改变数据成员。

●?当某类中有const数据成员时,必须给构造函数提供它的初始化值。

●?需要让类的所有对象共享的某个数据,可声明为静态成员。

●?静态成员属于类,不属于对象。即使不存在类的对象,类的静态成员也是存在的。

●?静态成员函数没有一个指向当前对象的this指针。?静态成员函数不能访问非静态成员。练习2.下列有关构造函数的说法正确的是:。

A.构造函数在程序开始时自动运行

B.构造函数不能有形参

C.构造函数无任何函数类型

D.类的定义中必须写上构造函数

3.若有constchar*p;,则定义的是:。

A.指向字符串的常量指针

B.指向字符常量的指针

C.指向字符串常量的指针

D.指向字符的常量指针4.对于某类的const成员函数声明,下列表示中正确的是:。

A.void

文档评论(0)

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

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

1亿VIP精品文档

相关文档