Mám nasledujúce triedy:
class user
{
...
};
class System : public user
{
private:
vector<Driver*> drivers;
public:
bool find_user(string, string, vector<user*>);
};
class Driver : public user
{
....
};
ale pri použití
find_user(UN, "",drivers);
má chybu kompilátora, ktorá hovorí nepravidelný casting z vektora do vektora. Budem vďačný, ak mi pomôžete.
odpovede:
0 pre odpoveď č. 1Dostanete chybu pri kompilácii, pretože sa pokúšate prejsť jedným typom (vector<Driver *>
) na druh prašníka (vector<user *>
), ktoré nie sú konvertibilné.
Nie je dosť kontextu, na čo find_user
odpovedať rozhodne, ale to by to kompilovať.
template <typename T>
bool find_user(string, string, vector<T*>) { ... };
Alebo alternatívne, možno ste chceli mať členskú premennú deklarovanú ako:
vector<user *> drivers;
Buď by to fungovalo, ale záleží na tom find_user
.