-1

为什么下面的程序给我一个声明错误?我不是在那个特定的行声明它吗?

#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
4

4 回答 4

3

您将“BitInt”拼错为“BigInt”:

class BitInt
于 2009-05-21T03:05:31.473 回答
0

当我认为它应该是“BigInt”时,该类被命名为“BitInt”。只是一个错字。

于 2009-05-21T03:06:36.400 回答
0

这是你的问题:

int main()
{
    BigInt();     // <--- makes no sense

    return 0;
}

它应该是:

int main()
{
    BigInt bigint; // create object of a class

    return 0;
}

你正在声明类BitIntmain使用BigInt - 有一个错字是 Bi t另一个 Bi g

于 2009-05-21T04:41:03.620 回答
0

在不相关的注释中,将 MILLION 定义为 1000000 是没有意义的。使用命名常量的原因是为了明确数字的用途并允许您轻松更改它,而不仅仅是让您用文字而不是数字输入数字。

最好调用常量 BIGINT_DIGITS 什么的。

于 2010-02-04T02:05:04.830 回答