65,211
社区成员
发帖
与我相关
我的任务
分享
class qiumi
{
int n;
public:
qiumi(int a){n=a;}
int get_n(){return n;}
int computer(int m)
{
if(m==1)
return 1;
else
return (m*computer(m-1));
}
};
void main()
{
qiumi m(10);
int answer=m.computer(m.get_n() );
cout <<answer <<endl;
}
搞清楚局部变量与类变量的区别:
#include <iostream>
using namespace std;
class qiumi
{
int n;
public:
qiumi(int a){n=a;}
int computer(int n) //局部变量与类变量同名本身就是设计上的大忌,形参变量名改成digital或其他
{
if(n==1) //这里的n是局部变量覆盖了this->n;
return 1;
else
return (n*computer(n-1));
}
};
void main()
{
qiumi m(10); //10初始化成员变量n,与computer算法中的n没有任何关系
int answer=m.computer(qiumi::n); //这里直接改成m.computer(10)
cout < <answer < <endl;
}
#include <iostream>
using namespace std;
class qiumi
{
public:
int n;
qiumi(int a) {n=a;}
int computer(int n)
{
if(n==1)
return 1;
else
return (n*computer(n-1));
}
};
void main()
{
qiumi m(10);
int answer=m.computer(m.n);
cout << answer << endl;
}