[创建型模式] Singleton

Singleton.h

//
//  Singleton.h
//  Singleton
//
//  Created by Cheney Shen on 11-2-20.
//  Copyright 2011年 __MyCompanyName__. All rights reserved.
//

#ifndef _SINGLETON_H_
#define _SINGLETON_H_

#include <iostream>
using namespace std;

class Singleton
{
    public:
    static Singleton* Instance();
    
    protected:
    Singleton();
    
    private:
    static Singleton* _instance;
    
};

#endif  //~_SINGLETON_H_

Singleton.cpp

//
//  Singleton.cpp
//  Singleton
//
//  Created by Cheney Shen on 11-2-20.
//  Copyright 2011年 __MyCompanyName__. All rights reserved.
//

#include "Singleton.h"

#include <iostream>
using namespace std;

Singleton* Singleton::_instance = 0;

Singleton::Singleton()
{
    cout<<"Singleton..."<<endl;
}

Singleton* Singleton::Instance()
{
    if(_instance==0){
        _instance = new Singleton();
    }
    
    return _instance;
}

main.cpp

//
//  main.cpp
//  Singleton
//
//  Created by Cheney Shen on 11-2-20.
//  Copyright 2011年 __MyCompanyName__. All rights reserved.
//
#include "Singleton.h"

#include <iostream>
using namespace std;

int main (int argc, const char * argv[]) {

    Singleton* sgn = Singleton::Instance();
    
    return 0;
}

posted on 2011-03-10 03:01  Cheney Shen  阅读(141)  评论(0编辑  收藏  举报

导航