我的作业中有这个问题。
我有这两个课程:
-一个用户类:
class user
{
protected:
int id;
std::string password;
std::string name;
bool online;
static int usersCounter;
static int onlineCounter;
public:
user(std::string = "user", std::string = "1234");
bool connect(std::string);
void disconnect();
void changePassword(std::string);
void changeName(std::string);
virtual void printInfo();
static int getOnlineNo()
{
return onlineCounter;
}
static int getTotalUsers()
{
return usersCounter;
}
friend class admin;
};
和一个管理员类:
class admin : public user
{
public:
admin(std::string name = "admin", std::string password = "admin"):
user(name, password){}
void disconnectUser(user&);
void viewUsers( user** );
void printInfo() override;
};
当我尝试创建一个多态对象并从 admin 调用一个函数(一个特定于 admin 的函数,如 disconnectUser(...) 或 viewUsers(...))时,我收到错误,因为“类“用户”没有成员“viewUsers ”。
user* usr = new admin();
usr->viewUsers(&usr);//error
这是常见的事情,我做了一个错误的设计,还是它应该工作,我做错了什么?