用C++的模板设计模式,写一段创建管理员用户、访客用户的代码,包含用户名、用户密码
时间: 2024-04-15 08:30:34 浏览: 153
下面是一个使用C++的模板设计模式创建管理员用户和访客用户的示例代码:
```cpp
#include <iostream>
#include <string>
// 用户类模板
template <typename UserType>
class User {
private:
std::string username;
std::string password;
public:
User(const std::string& username, const std::string& password)
: username(username), password(password) {}
void login() {
std::cout << "User Type: " << UserType::userType << std::endl;
std::cout << "Username: " << username << std::endl;
std::cout << "Password: " << password << std::endl;
// 具体的登录逻辑
}
};
// 管理员用户类
struct AdminUser {
static constexpr const char* userType = "Admin";
// 其他管理员用户的特有属性和操作
};
// 访客用户类
struct GuestUser {
static constexpr const char* userType = "Guest";
// 其他访客用户的特有属性和操作
};
int main() {
User<AdminUser> admin("admin", "admin123");
admin.login();
User<GuestUser> guest("guest", "guest123");
guest.login();
return 0;
}
```
在上面的示例中,我们定义了一个`User`类模板,该类模板接受一个类型参数`UserType`,用于表示用户的类型。在`User`类模板中,我们定义了用户名和用户密码两个成员变量,并提供了构造函数和登录方法。
然后,我们定义了两个用户类型,即`AdminUser`和`GuestUser`。这两个用户类型分别使用静态成员变量`userType`表示用户类型,同时可以添加其他特定于用户类型的属性和操作。
在`main`函数中,我们创建了一个管理员用户对象和一个访客用户对象,并调用了它们的登录方法。通过使用模板设计模式,我们可以方便地创建不同类型的用户对象,并在编译时进行类型检查和分发。
阅读全文