Вопрос

Почему следующая программа выдает мне ошибку объявления?Разве я не объявляю это в этой конкретной строке?

#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 или что-то в этом роде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top