第16周-异常处理和命名空间-课后实践·阅读程序
2015-06-17 09:09
447 查看
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 * 完成日期:2015 年 6 月 19 日 * 版 本 号:v1.0 * * 问题描述:阅读下面的程序,写出输出结果 * 输入描述:NULL; * 程序输出:输出结果;
(1)
#include <iostream> using namespace std; int a[10]={1,2,3,4,5,6,7,8,9,10}; int fun(int i); int main() { int i,s=0; for (i=0;i<=10;i++) { try { s=s+fun(i); } catch(int) { cout<<"数组下标越界!"<<endl; } } cout<<"s="<<s<<endl; return 0; } int fun(int i) { if (i>10) throw i; return a[i]; }
运行结果:
当我把for循环中的10改为了11,它的输出结果是这样的
(2)
#include <iostream> using namespace std; namespace CounterNameSpace { int upperbound; int lowerbound; class counter { int count; public: counter(int n) { if (n <= upperbound ) { count = n; } else { count = upperbound; } } void reset(int n) { if (n < upperbound) { count = n; } } int run() { if (count > lowerbound) { return count--; } else return lowerbound; } }; } int main() { CounterNameSpace::upperbound = 100; CounterNameSpace::lowerbound = 0; CounterNameSpace::counter ob1(10); int i; do { i = ob1.run(); cout << i << " "; } while (i > CounterNameSpace::lowerbound); cout << endl; CounterNameSpace::counter ob2(20); do { i = ob2.run(); cout << i << " "; } while (i > CounterNameSpace::lowerbound); cout << endl; ob2.reset(100); do { i = ob2.run(); cout << i << " "; } while (i > CounterNameSpace::lowerbound); cout << endl; return 0; }
运行结果:
(3)
#include <iostream> using namespace std; namespace CounterNameSpace { int upperbound; int lowerbound; class counter { int count; public: counter(int n) { if (n <= upperbound ) { count = n; } else { count = upperbound; } } void reset(int n) { if (n < upperbound) { count = n; } } int run() { if (count > lowerbound) { return count--; } else return lowerbound; } }; } int main() { using CounterNameSpace::upperbound; upperbound = 100; //(a) CounterNameSpace::lowerbound = 0; //(b) CounterNameSpace::counter ob1(10); int i; do { i = ob1.run(); cout << i<<" "; } while( i > CounterNameSpace::lowerbound); cout << endl; using namespace CounterNameSpace; counter ob2(20); do { i = ob2.run(); cout << i<<" "; } while( i > CounterNameSpace::lowerbound); //(c) cout << endl; ob2.reset(100); lowerbound = 90; //(d) do { i = ob2.run(); cout << i <<" "; } while( i > lowerbound); return 0; }
运行结果:
请回答:
(a)(d)处:为什么可以省去CounterNameSpace::?
因为之前已经对相关命名作了声明。using namespace CounterNameSpace;
(b)(c)处:是否可以省去CounterNameSpace::?
可以。
知识点总结:(1)异常处理,(2)(3)命名空间。
学习心得:
对于命名空间还有不少疑虑,得仔细看看书理解了。
相关文章推荐
- HttpServletRequest中的setAttribute问题
- 函数解一元二次方程
- 第十五周 项目1 用二进制文件处理学生成绩
- Leetcode Longest palindrome substring
- linux nice命令: 设置进程优先级
- 用线程和接口两种方法实现的java秒表
- 我的人生我自己决定2
- 调试MVC项目,不关闭 IIS EXPRESS
- css3 hover效果集
- 2015年P2P理财必看的10大常识
- 十五周项目一
- Xcode - 1
- java.sql.SQLException: 索引中丢失 IN或OUT 参数::x
- CSS---Block和inline元素对比
- Ubuntu窗口大小调节方法
- Linux下 /proc文件夹内容解析(/proc文件系统解析)
- 第十三周项目一2
- 第十四四周项目二 改写文件并另存
- JAVA操作properties文件
- Zigbee组网原理