C++ errore: '***' non è stato dichiarato in questo ambito


Esempio

Questo errore si verifica se viene utilizzato un oggetto sconosciuto.

variabili

Non compilare:

#include <iostream>

int main(int argc, char *argv[])
{
    {
        int i = 2;
    }

    std::cout << i << std::endl; // i is not in the scope of the main function

    return 0;
}

Difficoltà:

#include <iostream>

int main(int argc, char *argv[])
{
    {
        int i = 2;
        std::cout << i << std::endl;
    }

    return 0;
}

funzioni

La maggior parte delle volte questo errore si verifica se l'intestazione necessaria non è inclusa (ad esempio, usando std::cout senza #include <iostream> )

Non compilare:

#include <iostream>

int main(int argc, char *argv[])
{
    doCompile();

    return 0;
}

void doCompile()
{
    std::cout << "No!" << std::endl;
}

Difficoltà:

#include <iostream>

void doCompile(); // forward declare the function

int main(int argc, char *argv[])
{
    doCompile();

    return 0;
}

void doCompile()
{
    std::cout << "No!" << std::endl;
}

O:

#include <iostream>

void doCompile() // define the function before using it
{
    std::cout << "No!" << std::endl;
}

int main(int argc, char *argv[])
{
    doCompile();

    return 0;
}

Nota: il compilatore interpreta il codice dall'alto verso il basso (semplificazione). Tutto deve essere almeno dichiarato (o definito) prima dell'uso.