c++程序出错了 'mult' : is not a member of '`global namespace'
#include<iostream.h>classFactorial{private:intn;public:Factorial(inta){n=a;}intmulti(...
#include <iostream.h>
class Factorial
{
private:
int n;
public :
Factorial(int a )
{
n=a;
}
int multi();
void print ()
{
cout<<n<<"!="<<multi()<<endl;
}
};
int Factorial()::multi()
{
for (int i=0,s=1;i<=n;i++)
s=s*i;
return s;
}
int main()
{
int a;
cin>>a;
Factorial A(a);
A.print();
} 展开
class Factorial
{
private:
int n;
public :
Factorial(int a )
{
n=a;
}
int multi();
void print ()
{
cout<<n<<"!="<<multi()<<endl;
}
};
int Factorial()::multi()
{
for (int i=0,s=1;i<=n;i++)
s=s*i;
return s;
}
int main()
{
int a;
cin>>a;
Factorial A(a);
A.print();
} 展开
2012-07-04
展开全部
int Factorial()::multi()
{
for (int i=0,s=1;i<=n;i++)
s=s*i;
return s;
}
改为:
int Factorial::multi()
{
int s = 1;
for ( int i = 1; i <= n; ++i )
{
s = s * i;
}
return s;
}
三个问题:
一、在类定义外定义成员函数格式为:
返回类型 类名::成员函数名()
例如: int Factorial::multi()
二、循环的 s 变量必须提到外面,才能 return,循环内变量 s 在循环结束以后将被销毁,因此无法 return s;
三、循环的 i 变量的值应为 1,而不是 0。如果为 0,结果全部为 0。
{
for (int i=0,s=1;i<=n;i++)
s=s*i;
return s;
}
改为:
int Factorial::multi()
{
int s = 1;
for ( int i = 1; i <= n; ++i )
{
s = s * i;
}
return s;
}
三个问题:
一、在类定义外定义成员函数格式为:
返回类型 类名::成员函数名()
例如: int Factorial::multi()
二、循环的 s 变量必须提到外面,才能 return,循环内变量 s 在循环结束以后将被销毁,因此无法 return s;
三、循环的 i 变量的值应为 1,而不是 0。如果为 0,结果全部为 0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int Factorial()::multi() 应该是:
int Factorial::multi()
这是类外声明的固定格式。其实意思是说multi()这个函数是类Factorial的,所以是不用在Factorial后面加()的。
int Factorial::multi()
这是类外声明的固定格式。其实意思是说multi()这个函数是类Factorial的,所以是不用在Factorial后面加()的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int Factorial()::multi() 应该是:int Factorial::multi()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询