#include
class Factorial
{
static int result;
public:
static void product(int num);
};
int Factorial::result=1;
void Factorial::product(int num)
{
for(int i=1;i<=num;i++)
{
result=result*i;
cout<
}
}
int main()
{
Factorial A;
int max_number;
cout<<"請輸入一個數字:";
cin>>max_number;
product (max_number);
return 0;
}
這是課本的範例~
可是有個錯誤我找不出來~
還有~它在主程式裡面的Factorial A;
的用處是什麼阿?
2005-08-15 11:29:50 · 3 個解答 · 發問者 WadeHsu 1 in 電腦與網際網路 ➔ 程式設計
Factoria A //把類別Factoria物件化,名為A,意思是宣告物件A為Factoria的類別
而product(max_number)//應該改成A.product(max_number)吧…
試試看。
2005-08-15 11:53:16 · answer #1 · answered by 上官 5 · 0⤊ 0⤋
因為 Factorial::product 是static member function 所以可以這樣用
Factorial::product(max_number);
note: 只有static member 可在沒有認何一個class instance下使用.
2005-08-15 14:09:29 · answer #2 · answered by SiYu 5 · 0⤊ 0⤋
在下幫您找出錯誤了,有些地方也幫您改好了,不過在下用的編譯器是DevC++,不知道您是否也是用此編譯器呢?
Factorial A;----->此行為建立類別用,這個程式是計算階層函數用(n!)
-----------------------程式開始--------------------
#include
#include
#include
class Factorial
{
static int result;
public:
static void product(int num);
};
int Factorial::result=1;
void Factorial::product(int num)
{
for(int i=1;i<=num;i++)
{
result=result*i;
printf("%s","i!=");
printf("%d",result);
printf("\n");
}
}
using namespace std;
int main(int argc, char *argv[])
{
Factorial A;
int max_number;
cout<<"請輸入一個數字:";
cin>>max_number;
A.product(max_number); --->您原本的程式少了A.
system("PAUSE");
return 0;
}
-----------------------程式結束--------------------
2005-08-15 11:58:58 · answer #3 · answered by ? 6 · 0⤊ 0⤋