[C++]Niedozwolone porównanie


(Salazaar) #1

Witam, próbowałem w pewnym momencie programu zrobić takie porównania:

if(funcs[group] == "admin")

Jednak wywaliło mi z tym:

419 C:\Dev-Cpp1\Untitled2.cpp comparison between distinct pointer types void (*)()' andconst char*' lacks a cast

o niedozwolonym porównaniu jak myślę. Więc w jaki sposób mam to porównać?


(Kamycki Szymon) #2

Porownujesz dwie zmienne ktore sa innego typu. Jesli nie jeste tego duzo to wklej wiekszy fragment kodu.


(Salazaar) #3

oj, jest tego dużo, bardzo dużo. Ale to chyba powinno wystarczyc

if(pass == readPassword(files[group]))

    {

        cout << "access granted" << endl;

        funcs[group]();


        if(funcs[group] == "admin")

        cout << "Test udany dla admina";


        if (funcs[group] == "moderator")

        cout << "Test udany dla moda";


        if (funcs[group] == "employee")

        cout << "Test udany dla pracownika";

    }

    else

        cout << "access denied" << endl;

(Ryan) #4

Może byś pokazał deklarację funcs? Zdaniem kompilatora funcs fo funkcja (czy tablica funkcji). Jeśli ponownie próbujesz wprowadzić w życie pomysł operowania na nazwach konstruktów w czasie działania programu (wcześniej chciałeś stworzyć zmienną o jakiejś nazwie w czasie działania aplikacji) to ponownie powtarzam Ci, że nie możesz tego zrobić.