您的位置:首页 > 其它

15第十六周实践项目——程序阅读

2015-06-21 16:52 453 查看
/*

* Copyright (c) 2014, 烟台大学计算机学院

* All rights reserved.

* 文件名称:test.cpp

* 作 者:李晓凯

* 完成日期:2015年 6 月 21 日

* 版 本 号:v1.0

*

* 问题描述:

* 输入描述:

* 程序输出:

*/

(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];
}




当循环超出时:



(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;
}



问:

①为什么可以省去CounterNameSpace::?

②是否可以省去CounterNameSpace::?

答:

①因为在前面已经做出了相关的声明using namespace CounterNameSpace;

②可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: