在我的一个班级GUI
中,我有一个班级User u
的私有变量。在这个GUI
类中,我有一个用户登录的功能,然后检查他们的帐户是管理员还是普通用户,然后从中创建User
或Admin
对象。 Admin来自具有更多权限的用户。如何在设置登录后将私有变量User u
设置为Admin
对象或User
对象。
答案 0 :(得分:-2)
如果Admin
类正在扩展User
类,那么您可以使用User u
来表示它们。
如果您只需要管理员,并且您不知道u
是Admin
还是User
对象,您可以在运行时检查它:
if(Admin * v = dynamic_cast<Admin*>(u)) {
// u was safely casted to Admin
v->doSomething();
}
<强> N.B。强>
dynamic_cast
是一项费用很高的操作,您可以阅读here一些解决方法。