Avatar
expoox
Redaktor
Avatar
expoox:
class CInventory {

    static vector< int > idA;
    static vector< string > nameA;
    static vector< string > deptA;
    static vector< string > cityA;
    static vector< string > countryA;

  public:
    CInventory();
    ~CInventory();

    bool AddProp( int invID, const string & name, const string & deptName, const string & city, const string & country );   // DONE
    bool DelProp(int invID);    // DONE
    bool Transfer(int invID, const string & deptName, const string & city, const string & country );    // DONE
    CPropList PropList (string & deptName, string & city,string & country);
    int PropCount(string & deptName, string & city, string & country);  // DONE

    friend bool binarySearch(const int & invID, int & mid);
};

bool binarySearch(const int & invID, int & mid){      // DONE
    int lava = 1;
    int prava = idA.size();

    while (lava < prava) {
        mid = ((lava + prava) / 2) + 1;
        if (invID == idA[mid])
            return true;
        else if (invID < idA[mid])
            prava = mid;
        else
            lava = mid;
    }

    return false;
}

ahoj, dostavam na funkciu binarySearch error pri kompilacii, neviete preco nepozna idA ? dakujem

main.cpp: In function ‘bool binarySearch(const int&, int&)’:
main.cpp:47:17: error: ‘idA’ was not declared in this scope
int prava = idA.size();

 
Odpovědět 3. dubna 15:53
Avatar
expoox
Redaktor
Avatar
expoox:

dobre upravil som ten riadok takto

int prava = CInvetory::idA.size();

a uz to error nehadze ale neviem ci je to spravne riesenie, respektive ci je to vobec riesenie

 
Nahoru Odpovědět 3. dubna 16:08
Avatar
martanec
Člen
Avatar
martanec:

myslim, ze ti pri metode binarySearch chyba nazov triedy. ktorej metoda patri:

bool CInventory::bi­narySearch(con­st int & invID, int & mid){ // DONE
...
}

 
Nahoru Odpovědět 5. dubna 8:46
Avatar
expoox
Redaktor
Avatar
Odpovídá na martanec
expoox:

no nas prave ucili ze pri friend funkciach deklarovanych v triede sa to nepise

 
Nahoru Odpovědět 5. dubna 12:10
Avatar
martanec
Člen
Avatar
Odpovídá na expoox
martanec:

Mas pravdu :) Priznam sa, ze doteraz som friend funkcie este nepouzil. No podla dokumentacie a par prikladoch, co som nasiel, by som povedal, ze tvoja oprava je dobra:

int prava = CInvetory::idA.size();

Pri nie-statickych atributoch triedy, by si potom ako parameter funkcie musel posielat referenciu/smernik na existujuci objekt danej triedy:

bool binarySearch(const CInventory & pInventory, const int & invID, int & mid)

a v tele funkcie by to nasledne vyzeralo takto:

int prava = pInventory.idA.size();

Kazdopadne by bolo fajn, keby mi dal za pravdu este niekto, kto sa s tymto bezne zaobera:)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 5. dubna 13:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.