Dlaczego wyskakuje błąd "no matching function for call to"?

0
#include <iostream>
#include <cstdlib>

#include "Gra.h"
#include "Baza.h"

using namespace std;

const string NAZWA = "baza.txt";
const string SEPARATOR = ";";

//metoda szukająca kolejnych atrybutów gry podczas wczytania danych z pliku
int szukaj(std::string & tekst)
{


    size_t znalezionaPozycja = tekst.find(";");
    if(znalezionaPozycja == std::string::npos){
         return -1;
    } else {
         return znalezionaPozycja;
    }
}


int main()
{
    ifstream plik(NAZWA); // Próbujemy otworzyć plik




    //utworzenie obiektu bazy
    Baza *baza = new Baza();

    if(plik){

        cout << "Baza otworzona poprawnie.";

        string linia;
        string w1, w2, w3;
        int w4;
        double w5;
        int i=0;

        //odczyt w petli, linia po linii wszystkich gier z bazy plikowej
        //kazda gra w nowej linii, atrybuty gier oddzielane srednikiem
        while(std::getline(plik, linia)){

            string delimiter = SEPARATOR;
            size_t pos = 0;
            string token;

            while ((pos = linia.find(delimiter)) != string::npos) {

                token = linia.substr(0, pos);

                switch(i){
                case 0:
                    w1 = token;
                    break;
                case 1:
                    w2 = token;
                    break;
                case 2:
                    w3 = token;
                    break;
                case 3:
                    w4 = atoi(token.c_str());
                    break;
                case 4:
                    w5 = atof(token.c_str());
                    break;
                }

                linia.erase(0, pos + delimiter.length());
                i++;
            }

            Gra *gra = new Gra(w1, w2, w3, w4, w5);
            baza->dodajNaListe(*gra);//dodawanie na liste wczytanych gier

            i=0;
        }


        //wyswietlenie menu
        cout << "\n\nMENU\n\n";
        cout << "0 - koniec pracy\n";
        cout << "1 - dodawanie\n2 - usuwanie\n";
        cout << "3 - wyszukiwanie\n4 - ilosc gier w bazie\n" << endl;

        //deklaracja niezbednych zmiennych
        string szukajTytulu;
        int wybor=-1;

        //nieskonczona petla (no chyba  ze wpiszemy zero)
        do {

            cout << endl;

            //jesli ktos wpisal zero to konczymy petle i dzialanie programu
            if(wybor == 0) break;

            string x1, x2, x3, x4, x5;
            Gra *giera;

            //sprawdzanie w switchu co ktos wpisal (1, 2, 3, 4)
            switch(wybor){

                case 1://dodawanie

                    cout << "Podaj tytul: ";
                    cin >> x1;
                    cout << "Podaj gatunek: ";
                    cin >> x2;
                    cout << "Podaj firme: ";
                    cin >> x3;
                    cout << "Podaj rok: ";
                    cin >> x4;
                    cout << "Podaj cene: ";
                    cin >> x5;

                    giera = new Gra(x1, x2, x3, atoi(x4.c_str()), atof(x5.c_str()));
                    baza->dodajNaListe(*giera);
                    baza->dodajDoPliku(*giera);

                    cout << "\nDodano!\n";

                break;

                case 2://usuwanie
                    baza->wyswietlWszystkie();
                    cout << "\nPodaj nr gry, ktora chcesz usunac: ";
                    int ktr;
                    cin >> ktr;
                    baza->usun(ktr);
                break;

                case 3://jesli ktos wpisal 3 to szukamy gry po nazwie w bazie
                    cout << "Podaj tytul szukanej gry: ";
                    std::getline(cin, szukajTytulu);
                    cout << "\nSzukam " << szukajTytulu;
                    baza->szukaj(szukajTytulu);
                break;

                case 4://pobranie ilosci gier w bazie
                    cout << baza->pobierzRozmiar() << endl;
                break;

            }

            cout << "\nWpisz nr instrukcji, ktora chcesz wykonac: "; //zacheta do wpisania nr instrukcji

        } while((cin>>wybor) != 0); //warunek stopu petli

    } else {
        cout << "Baza uszkodzona." << endl;
    }

    cout << "\n\nPRACA ZAKONCZONA\n\n";

    return 0;
}

Wyskakuje mi taki błąd

no matching function for call to 'std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(const std::string&)'

co to może być?

dodanie znaczników <code class="cpp"> - @furious programming

0

w tym kodzie tego ni ma... daj więcej :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1