Frage von tomKlaus, 24

Warum passiert hier ein Compiler Fehler ?

code: 

#include <iostream>

#include <algorithm>

#include <vector>

    using namespace std;

    int main(){

        bool mycheck(double val01, double val02){
            return (static_cast<int>(val01) == static_cast<int>(val02));
        }

        vector<double> data1{2.1, 5.5, 3.2, 4.1};
        vector<double> data2{2.1, 5.5, 3.5, 4.1};
        bool i = equal(data1.begin(), data1.end(), data2.begin(), mycheck);
        if (i == true){
            cout << "gleich" << endl;
        } else {
            cout << "ungleich" << endl;
        }

        return 0;
    }

compiler:

demo.cpp: In function ‘int main()’:demo.cpp:10:42: error: a function-definition is not allowed here before ‘{’ token bool mycheck(double val01, double val02){ ^demo.cpp:16:60: error: ‘mycheck’ was not declared in this scope bool i = equal(data1.begin(), data1.end(), data2.begin(), mycheck); ^

Antwort
von Suboptimierer, 17

Zieh die innere Funktion mal probeweise aus main heraus.

Antwort
von LeonardM, 12

Erst initialisieren dann funktion zuweisen.da ich nichts kopieren und einfügen kann hier ein beispiel

bool a (double b, double c);

bool a(double b, double c)

{

 return true;

}

Antwort
von Berny96, 9

die mycheck Methode sollte ausserhalb der main Methode sein. 

Kopier sie mal raus.

Antwort
von tomKlaus, 10

ok danke klappt. Ich stand wohl gerade auf'n Schlauch :D

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten