实验7:单例模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解单例模式的动机,掌握该模式的结构;

2、能够利用单列模式解决实际问题

 

[实验任务一]:学号的单一

仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

 

#include <iostream>

using namespace std;

class S_num{private:

    static S_num sno;

    static int num;public:

    static S_num getintance() {

        // TODO Auto-generated method stub

        if(num==0) {

            cout<<"第一次办理学生证,分配新号码!"<<endl;

            sno.setNum(20193288);

        }

        else {

            cout<<"重复办理学生证,获取旧号码!"<<endl;

        }

        return sno;

    }

    int getNum() {

        return num;

    }

    void setNum(int n) {

        num = n;

    }

};

int S_num::num = 0;

S_num S_num::sno = S_num();

int main()

{

    S_num sno1=S_num().getintance();

    cout<<"第一次获取学号"<<sno1.getNum()<<endl;

    S_num sno2=S_num().getintance();

    cout<<"第二次获取学号"<<sno2.getNum()<<endl;

    cout<<"内容是否相等:"<<(sno1.getNum()==sno2.getNum())<<endl;

    //cout<<"是否是相同对象:"<<(sno1==sno2)<<endl;

}

 

posted on 2025-01-06 15:29    阅读(10)  评论(0)    收藏  举报