实验六-对象传递与静态成员参考答案
更新时间:2024-05-04 20:12:01 阅读量: 综合文库 文档下载
- 实验对象英语推荐度:
- 相关推荐
实验六 对象传递与静态成员
6.1 实验目的
1.理解静态成员(静态数据成员、静态成员函数)的作用与使用; 2.理解友元(友元函数、友元类)的作用与使用; 3.理解以常数据成员、常对象。
6.2 实验内容 6.2.1程序阅读
1.理解下面的程序,并运行查看结果,回答程序后面的问题。
#include
public:
CStudent(char *n, int a); ~CStudent();
staticvoid SetAge(int age); private:
char *name; int age;
staticint nTotalObj; };
int CStudent::nTotalObj = 0;
CStudent::CStudent(char *n, int a):age(a) {
int nLen = strlen(n);
name = newchar[nLen+1]; strcpy(name,n); name[nLen] = '\\0'; nTotalObj++; }
CStudent::~CStudent() {
delete[] name; nTotalObj--; }
void CStudent::SetAge(int age) {
this->age = age; }
int main() {
CStudent stu1(\张三\,25); CStudent str2(\李四\,26);
cout<<\< return 0; } 问题一:以上程序编译能通过吗,为什么? 答:不能,存在以下错误 a、 静态成员变量nTotalObj声明为private,导致在主函数内不能引用; b、 静态成员函数使用了this指针。 问题二:成员变量nTotalObj在程序中起什么作用,它是如何实现的? 答:对构建的CStudent类对象进行计数的作用,它是通过设置静态成员变量的方式实现的。 问题三:如果规定该程序的主函数不允许改变,应该如何改正该程序? 答:将静态成员变量nTotalObj声明为public,将语句this->age=age;修改为age=age; 2.理解下面的程序,并运行查看结果,回答程序后面的问题。 #include public: CTeacher(char *tn, int ta); ~CTeacher(); void SetStuAge(CStudent &, int a); void display() { cout< char *name; int age; }; class CStudent { public: CStudent(char *n, int a); ~CStudent(); void display() { cout< friend void CTeacher::SetStuAge(CStudent &, int a); private: char *name; int age; }; CStudent::CStudent(char *n, int a):age(a) { int nLen = strlen(n); name = new char[nLen+1]; strcpy(name,n); name[nLen] = '\\0'; } CStudent::~CStudent() { delete[] name; } CTeacher::CTeacher(char *tn, int ta):age(ta) { int nLen = strlen(tn); name = new char[nLen+1]; strcpy(name,tn); name[nLen] = '\\0'; } CTeacher::~CTeacher() { delete[] name; } void CTeacher::SetStuAge(CStudent &s, int a) { s.age = a; } int main() { } CStudent stu(\张三\CTeacher tea(\李四\stu.display(); tea.display(); tea.SetStuAge(stu,23); stu.display(); return 0; 问题一:以上程序有三处错误,试指出来,并改正之? 答:这个程序想要实现的一个核心功能是:教师可以通过SetStuAge方法来修改学生的年龄。这样就需要在学生类中声明CTeacher类的void SetStuAge函数为CStudent类的友元函数。此题很多同学修改后,程序能运行,但并不能实现上述功能。 此题修改的内容已经在程序中用红色标出。 3.理解下面的程序,并运行查看结果,回答程序后面的问题。 #include private: const int year; const int month; const int day; public: Date(int y,int m,int d); void showdate(); }; Date::Date(int y,int m,int d) { year = y; month = m; day = d; } void Date::showdate() { cout< int main() { const Date obj(2007,10,30); obj.showdate(); return } 问题一:以上程序有两大错误,试指出来,并改正之(要求主函数和类Date的数据成员属性不可以改动)?(提示:常数据成员的初始化、常对象的使用) 答: 1、常成员变量的初始化只能采取参数初始化表方式; Date类的构造函数应改为Date::Date(int y,int m,int d):year(y),month(m),day(d){} 2、常对象只能调用常成员函数,因此showdate需要定义为常成员函数,函数声明与定义后需要添加const关键字。修改后的程序如下。 #include private: const int year; const int month; const int day; public: Date(int y,int m,int d); void showdate() const; }; Date::Date(int y,int m,int d):year(y),month(m),day(d){} void Date::showdate() const { cout< int main() { const Date obj(2007,10,30); obj.showdate(); return } 6.2.2 程序设计 1.商店销售某一商品,商店每天公布统一的折扣(discount).同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对于一次购10件以上的客户,还可以享受9.8折优惠.现已知当天3名销售人员的销售情况为: 销售员号(num) 销售件数(quantity)单价(price) 101 5 23.5 102 12 24.56 103 100 21.5 编写程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价.要求用静态数据成员和静态成员函数. 答:此题是书上习题9,主要用来考察大家对静态成员的理解,当时摘抄下来没有细想,现
正在阅读:
实验六-对象传递与静态成员参考答案05-04
纺织材料学复习题计算题答案(科大)01-25
五下语文期中复习教案07-05
2016-2022年中国PBT 树脂市场全景调查与投资战略报告(目录)08-30
乳腺浸润性导管癌钼靶X线表现与C-erbB-2的关系08-13
自学考试各地建筑工程制图各年真题10-11
不同配电网自动化通信方案比较及应用研究04-23
UCAS中英文信息表03-04
机器人同时定位与地图构建技术研究06-02
北京现代_ix35使用说明书08-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 静态
- 传递
- 对象
- 成员
- 答案
- 参考
- 实验
- 古典十级曲目
- 某制药厂(奥利司他)职业病危害预评价报告 - 图文
- 2018-2024年醚后碳四(C4)市场评估分析及发展前景调研战略研究报
- 分析化学章节题目
- 人教版数学二年级下册课课练(35页) - 图文
- 全国A级景区名单
- 2018五域论湛《操盘手训练》中级班
- 《管理使命、责任、实务》使命篇目录
- 2017年贵州省黔西南州中考语文试题及参考答案(word版)
- 2009级B类物理实验笔试试卷(答案)
- 连采规程
- 2016-2022年中国光伏电站产业发展监测及十三五发展定位分析报告
- 基础会计章节练习题
- 主体结构实体检测方案
- 食品化学在食品检测中的应用
- 建筑工程改造
- 基于安卓操作系统的手机天气预报设计论文
- 第四章现金流量与资金时间价值模拟试题1
- GSTCFG彩色监控系统配置管理软件用户手册Ver.2.13,2008.01 F2.48
- 82107035钱键-本田雅阁轿车进气系统的故障诊断与维修