食品保水剂如何使用:求VC++编程....用面向对象的编程思想,编写程序计算n!(设=5)。

来源:百度文库 编辑:高校问答 时间:2024/04/29 10:12:09
用面向对象的编程思想,编写程序计算n!(设=5)。

用vc++编
但老师非要求用面向对象........我也没办法..

#include<iostream.h>
class factorial
{
public:
int n;
int result();
};

int factorial::result()
{
int i = 1;
int m = 1;
while(i<=n)
{
m = m*i;
i++;
}
return m;
}

void main()
{
factorial temp;
temp.n = 5;
cout<<<<"5的阶乘:"<<temp.result()<<endl;
}

现在的老师,真奇怪

这题用面向对象的思想是不可能的,所谓面向对象,是必须有类的继承关系,虚拟函数,多态这些效果才叫面向对象。
这题充其量也只能用“基于对象”的思想来做。我想是你们老师把这2个概念混淆了。“基于对象”和“面向对象”是完全两回事。若用基于对象的思想,可以如下:
#include<iostream>
using namespace std;

class Number
{
private:
int _val;
public:
Number(int val): _val(val) {}
int Calc()
{
int result =1;
for(int i=2; i<=_val; ++i)
{
result *= i;
}
return result;
}
};

int main()
{
cout<<"Input N:"<<ends;
int n;
cin>>n;
Number N(n);
cout<<"Result is: "<<N.Calc()<<endl;
return 0;
}

这么小的东西,面向对象有意思吗?一个函数几行代码就解决了...