6-1 修改程序错误,两种修改方案
2012-03-26 16:29
274 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,
说明我倾向于用哪一种?为什么?处理此类问题的原则是什么?
* 作 者: 张传新
* 完成日期: 2012 年 03 月 25 日
* 版 本 号: 1 。0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
源程序:
修改方案一:
修改方案二:
程序中彩色部分为修改方案。
修改分析:我更倾向于第一种修改方案,将非const型函数改为const型,这样在程序编译过程中不会因为数据的改动,
而产生输出结果的改变,因为const型成员函数中的数据成员是不能修改的。
具体情况如下:
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,
说明我倾向于用哪一种?为什么?处理此类问题的原则是什么?
* 作 者: 张传新
* 完成日期: 2012 年 03 月 25 日
* 版 本 号: 1 。0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
源程序:
#include<iostream> using namespace std; class C { private: int x; public: C(int x){this->x = x;} int getx(){return x;} }; void main() { const C c(5); cout<<c.getx()<<endl; system("pause"); }
修改方案一:
#include<iostream> using namespace std; class C { private: int x; public: C(int x){this->x = x;} int getx()const{return x;}//将非const型函数改为const型 }; void main() { const C c(5); cout<<c.getx()<<endl; system("pause"); }
修改方案二:
#include<iostream> using namespace std; class C { private: int x; public: C(int x){this->x = x;} int getx(){return x;} }; void main() { C c(5); //将const去掉 cout<<c.getx()<<endl; system("pause"); }
程序中彩色部分为修改方案。
修改分析:我更倾向于第一种修改方案,将非const型函数改为const型,这样在程序编译过程中不会因为数据的改动,
而产生输出结果的改变,因为const型成员函数中的数据成员是不能修改的。
具体情况如下:
数据成员 | 非const成员函数 | const成员函数 |
非const数据成员 | 可引用,可改变值 | 可引用,不可改变值 |
const数据成员 | 可引用,不可改变值 | 可引用,不可改变值 |
const对象的数据成员 | 不可引用,不可改变 | 可引用,不可改变值 |
相关文章推荐
- 第六周实验报告任务 1 下面程序存在编译错误。有两种修改方案,更倾向于那一种?为什么?
- C++第六周任务一【任务1】下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,在报告中说明你倾向于用哪一种?为什么?处理此类问题的原则是什么?
- 第六周实验指导--下面的程序存在编译错误,请给出两种修改方案--说明处理此类问题的原则是什么
- ASP.NET错误处理的两种方案_AX
- 如何修改下列程序才避免段错误
- asp(非asp.net)程序访问access数据库,无法写入、修改,提示错误:当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。
- 347. Top K Frequent Elements (C++程序实现,两种方案)
- 微信小程序开发 错误修改方法笔记
- eclipse开发birt报表时预览数据错误修改方案
- Windows|Eclipse 运行HDFS程序遇到问题之 AccessControlException【windows中运行hdfs程序后报的异常:访问权限控制异常;方案二,修改MR程序即可】
- 修改dcl程序,使它能够处理输入中的错误
- 修改 Visual Studio 项目中程序集信息默认公司名称的两种方法
- 修改桌面堆栈大小,解决运行大量程序时出现”Out of Memory”(内存不足)错误信息的问题
- 织梦DEDECMS会员发布文章修改后"数据校验不对,程序返回"错误修改方法
- 注意在切换编写API与MFC程序时是与将Microsoft Foundation Classes修改回来否则产生错误:
- 如何防止Android程序被反编译(rongwenbin已经对原创的内容中缺漏及错误进行修改补充)
- sql 复杂自动编号错误批量修改方案
- Centos7修改profile错误导致命令行不能用,情况的解救方案
- C51 延时程序两种方案
- 使用程序修改域帐户直接领导时遇到的错误