我有以下课程:
class user
{
...
};
class System : public user
{
private:
vector<Driver*> drivers;
public:
bool find_user(string, string, vector<user*>);
};
class Driver : public user
{
....
};
但使用时
find_user(UN, "",drivers);
它有一个编译错误,说从向量到向量的不规则转换。 如果你帮助我,我会感激的。
答案 0 :(得分:0)
您收到编译错误,因为您尝试将一种类型(vector<Driver *>
)传递给不可转换的花药类型(vector<user *>
)。
没有足够的背景信息find_user
肯定会回答什么,但这会得到它的编译。
template <typename T>
bool find_user(string, string, vector<T*>) { ... };
或者,也许您的意思是将成员变量声明为:
vector<user *> drivers;
要么工作,要取决于find_user
。