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;
    }
    

      

    运行结果:

  • 相关阅读:
    mybatis 使用缓存策略
    mybatis 使用事务处理
    mybatis 使用接口绑定
    mybatis 配置文件全解
    mybatis mapper映射文件全解
    mybatis中使用log4j
    初次使用Mybatis
    Servlet 实现文件上传与下载
    log4j v2版本的配置和使用
    Servlet 转发请求与重定向,以及路径问题
  • 原文地址:https://www.cnblogs.com/znjy/p/14167274.html
Copyright © 2011-2022 走看看