zoukankan      html  css  js  c++  java
  • 单例模式——C++实现

    问题描述:

    使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。

    类图:

    C++源代码:

    #include<iostream>
    #include<string>
    using namespace std;
    //单例角色——StudentNo类
    class StudentNo{
    private:
    	static StudentNo* instance;
    	string no;
    	StudentNo(){}
    	void setStudentNo(string n){
    		no=n;
    	}
    public:
    	static StudentNo* getInstance(){
    		if(instance==NULL){
    			cout<<"第一次注册,分配新的学号"<<endl;
    			instance=new StudentNo();
    			instance->setStudentNo("20194024");
    		}else{
    			cout<<"重复注册,获取旧的学号"<<endl;
    		}
    		return instance;
    	}
    	string getStudentNo(){
    		return no;
    	}
    };
    StudentNo* StudentNo::instance=NULL;
    int main(){
    	StudentNo *x,*y;
    	x=StudentNo::getInstance();
    	y=StudentNo::getInstance();
    	cout<<"学号是否一致";
    	if(x==y){
    		cout<<"true"<<endl;
    	}
    
    	string a,b;
    	a=x->getStudentNo();
    	b=y->getStudentNo();
    	cout<<"第一次学号是"<<a<<endl;
    	cout<<"第二次学号是"<<b<<endl;
    	cout<<"内容是否相等";
    	if(strcmp(a.c_str(),b.c_str())==0){
    		cout<<"true"<<endl;
    	}
    	cout<<"是否是相同对象";
    	if(a==b){
    		cout<<"true"<<endl;
    	}
    	return 0;
    }
    

      

    运行结果:

  • 相关阅读:
    10.16作业
    day0402作业
    day04作业
    10.13作业
    JVM原理最全、清晰、通俗讲解
    Java的SimpleDateFormat,DateTimeFormatter:YYYY与yyyy
    从源码层面理解 ArrayList 扩容策略
    哈夫曼树
    面向对象三大基本特性,五大基本原则
    数据结构
  • 原文地址:https://www.cnblogs.com/znjy/p/14167274.html
Copyright © 2011-2022 走看看