写在前面:作为一只小白,感谢小甲鱼老师提供这么好的入门课程。因此在这里做个笔记,如有侵权请联系删除
www.fishc.com
①让函数返回错误码
让程序能够自行处理潜在错误地办法之一是创建一些测试函数:专门测试某种条件并根据测试结果返回一个代码来表示当前函数地执行状态。
int myFunction()
{
if(condition)
{
return 0;
}
else
{
return 1;
}
}
这种方式我们已经了然于心,但我们仍有进一步继续讨论地必要。
不知道大家还记不记得很久很久以前,我们一起写过地那个求阶乘地例子:
#include <iostream>
#include <climits>
class Factorial
{
public:
Factorial(unsigned short num);
unsigned long getFactorial();
bool inRange();
private:
unsigned short num;
};
Factorial::Factorial(unsigned short num)
{
this->num = num;
}
unsigned long Factorial::getFactorial()
{
unsigned long sum = 1;
for(int i = 1 ; i <= Factorial::num ; i ++)
{
sum *= i;
}
return sum;
}
bool Factorial::inRange()
{
unsigned long max = ULONG_MAX;
for( int i = Factorial::num;i >= 1; --i)
{
max /= i;
}
if(max < 1)
{
return false;
}
else
{
return true;
}
}
int main()
{
unsigned short num = 0;
std::cout << "please input int num: ";
std::cin >> num;
Factorial fac(num);
if(fac.inRange())
{
std::cout << num << "Factorial result is :" <<fac.getFactorial()<<"\n";
}
else
{
std::cout << num << "Factorial result is over";
}
}
有些程序喜欢使用异常(咱们将在稍后学习)而不是使用return语句。
反对使用这个例子程序里所演示地技巧主要理由是:把各种出错代码进行处理地语句混杂在程序地主干部分既不利于模块化编程,又容易干扰正常地思考!