标签:总结 38 学号 int 每日 instance StudentId 单例 id
软件设计 石家庄铁道大学信息学院
实验7:单例模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解单例模式的动机,掌握该模式的结构;
2、能够利用单列模式解决实际问题。
[实验任务一]:学号的单一
仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。
实验要求:
#include <iostream>
class StudentId {
private:
static StudentId* instance;
int id;
// 私有构造函数
StudentId() : id(0) {}
// 禁止拷贝构造函数和赋值操作符
StudentId(const
StudentId&) = delete;
StudentId&
operator=(const StudentId&) = delete;
public:
// 获取单例对象
static StudentId*
getInstance() {
if (instance == nullptr)
{
instance = new
StudentId();
}
return instance;
}
// 设置学号
void setId(int newId) {
if (id == 0) { // 确保学号只被设置一次
id = newId;
}
}
// 获取学号
int getId() const {
return id;
}
};
// 初始化静态成员变量
StudentId* StudentId::instance = nullptr;
int main() {
// 获取学号单例对象
StudentId* student1 =
StudentId::getInstance();
student1->setId(12345);
StudentId* student2 =
StudentId::getInstance();
std::cout << "学号: " <<
student2->getId() << std::endl;
return 0;
}
标签:总结,
38,
学号,
int,
每日,
instance,
StudentId,
单例,
id
From: https://www.cnblogs.com/azure011328/p/18543071