を持っていない私は、コンストラクタを持っています取得エラーC++の呼び出しに該当する機能もすべてのコンストラクタ
オペレータユニット桁の初期化をサポートし、*のオーバーロードのBigIntライブラリを作ってみました「のBigInt(INT R [])」まだ「復帰BigInt(res) "が機能しません。どこの配列がint配列
ありがとうございました。
コンパイラエラー "エラー:" BigInt :: BigInt(BigInt) 'の呼び出しで一致する関数がありません 戻り値BigInt(res); "
ここだがBigInt(const int *r)
からBigInt(int r[])
コンストラクタのQt Creatorを
#include <iostream>
using namespace std;
class BigInt{
public:
int h[1000];
BigInt(){
for(int i=0; i<1000; i++) h[i] = -1;
}
BigInt(int n){
for(int i=0; i<1000; i++) h[i] = -1;
h[0] = n;
//Assuming single digit
}
BigInt(int r[]){
for(int i=0; i<1000; i++) h[i] = r[i];
}
BigInt(BigInt &b){
for(int i=0; i<1000; i++) h[i] = b.h[i];
}
BigInt operator*(int n){
int carry = 0;
int res[1000] = {-1};
int *a = &h[0];
int *b = &res[0];
while(1){
int unitDigit = n*(*a) + carry;
carry = unitDigit/10;
unitDigit %= 10;
*b = unitDigit;
b++;
a++;
if(*a == -1){
break;
}
}
while(carry){
int unitDigit = carry % 10;
*b = unitDigit;
carry /= 10;
b++;
}
return BigInt(res);
}
friend ostream& operator<<(ostream &out, BigInt &b){
int i;
for(i = 999; b.h[i] == -1; i--)
;
for(; i>=0; i--){
out<<b.h[i];
}
return out;
}
};
int main(){
int input;
cin>>input;
BigInt result(1);
for(int i=2; i<input; i++){
result = result*i;
}
cout<<result<<endl;
return 0;
}
これは私にとってうまくコンパイルされます - あなたは問題があるコードを投稿したことを確信しています。 –