Вопрос
Почему следующая программа выдает мне ошибку объявления?Разве я не объявляю это в этой конкретной строке?
#include <iostream>
#define MILLION 1000000
using namespace std;
class BitInt
{
public:
BigInt();
private:
int digit_array[MILLION];
int length;
};
BigInt::BigInt()
{
int length=0;
for(int i=0; i<MILLION; i++)
digit_array[i]=0;
}
int main()
{
BigInt();
return 0;
}
bigint.cpp:11: error: ISO C++ forbids declaration of ‘BigInt’ with no type
bigint.cpp:18: error: ‘BigInt’ has not been declared
bigint.cpp:18: error: ISO C++ forbids declaration of ‘BigInt’ with no type
bigint.cpp: In function ‘int BigInt()’:
bigint.cpp:22: error: ‘digit_array’ was not declared in this scope
Решение
Вы неправильно написали "BigInt" вместо "BitInt".:
class BitInt
Другие советы
Класс называется "BitInt", когда я предполагаю, что он должен быть "BigInt".Просто опечатка.
Это твоя проблема:
int main()
{
BigInt(); // <--- makes no sense
return 0;
}
Это должно быть:
int main()
{
BigInt bigint; // create object of a class
return 0;
}
И вы объявляете класс БитИнт и в main
используя Большой член - там опечатка , первая - Bit другой Биg
С другой стороны, определять МИЛЛИОН как 1000000 бессмысленно.Причина использования именованных констант заключается в том, чтобы сделать назначение числа понятным и позволить вам легко изменять его, а не просто вводить число словами вместо цифр.
Было бы лучше вызвать константу BIGINT_DIGITS или что-то в этом роде.
Не связан с StackOverflow