Domanda

Perchè il seguente programma mi danno un errore di dichiarazione? Non sono io dichiaro che in quel riga specifica?

#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
È stato utile?

Soluzione

Hai scritto male "BigInt" per "BitInt":

class BitInt

Altri suggerimenti

La classe si chiama "BitInt" quando presumo che dovrebbe essere "BigInt". Solo un errore di battitura.

Questo è il problema:

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

    return 0;
}

Dovrebbe essere:

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

    return 0;
}

E si dichiara classe BitInt e in main utilizzando BigInt - c'è un errore di battitura è Bi t l'altro Bi g

In una nota indipendenti, definendo MILIONI come 1000000 è inutile. La ragione per usare costanti con nome è quello di rendere lo scopo del numero di chiaro e permetterà di cambiare facilmente, non solo di lasciare che si digita un numero in parole, invece di numeri.

Sarebbe meglio chiamare le BIGINT_DIGITS costanti o qualcosa del genere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top