- 1、本文档共186页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 《电路分析基础》课件5第5章.ppt
- 《电子线路CAD设计项目化教程》课件项目六 CH341A下载器设计.ppt
- 《电子线路CAD设计项目化教程》课件项目二 直流稳压电源电路.ppt
- 《电工电子技术》课件第1章.ppt
- 《电工基础》课件第1章.ppt
- 《C++程序设计教程》课件第3章.ppt
- 《C++程序设计教程》课件第5章.ppt
- 《电子设计自动化》课件第7章.ppt
- 《电子线路CAD设计项目化教程》课件概述.ppt
- 《C++程序设计教程》课件第4章.ppt
- 2025年中国婴幼儿辅食行业发展现状、格局及趋势分析.pdf
- 2025年中国果酒行业发展现状及趋势分析.pdf
- 餐饮行业智慧餐厅建设与管理方案.doc
- 统编版(2024新版)七年级上册语文期末复习:基础知识点与练习题(含练习题及答案).docx
- 2025年中学化学-A1技术支持的学情分析-方案+分析报告【微能力认证获奖作品】 (1).pdf
- 寒假预习专用 25春九年级化学下册鲁教版课件 第10单元 第二节 化学元素与人体健康.ppt
- 2025年中央空调维保方案书(修改).pdf
- 2025年中学数学建模论文精选范文赏析(共5篇).pdf
- 环保行业污染物监测与治理系统方案.doc
- 统编版(2024新版)七年级上册语文期末复习:文学常识与练习题汇编(含答案).docx
文档评论(0)