c++ 单例模式 对数据进行操作

来源:互联网 发布:创维酷开下载软件 编辑:程序博客网 时间:2024/06/05 04:01

//

//  usercenter.h

//  sence

//

//  Created by lanqs on 15-5-27.

//  Copyright (c) 2015 lanqs. All rights reserved.

//


#ifndef __sence__usercenter__

#define __sence__usercenter__


#include <stdio.h>

#include <iostream>

using namespace std;

struct  UserInfo      // 用户消息存储

{

    int  userId;

    int  level;

    int  gold;

};



// 对用户数据进行操作

class  UserCenter

{

   public:

   static UserCenter * getInstance();          //静态函数  返回静态指针变量

   

   bool  init();                               // 数据初始化   用户信息

   void  refre();                              // 数据更新

   

   UserInfo   getUserInfo(){returnm_userInfo;} //获得用户信息

   private:

   static  UserCenter *  pRect;                // 静态变量

   private:

   UserInfo  m_userInfo;                       // 用户信息

};

#endif /* defined(__sence__usercenter__) */


//

//  usercenter.cpp

//  sence

//

//  Created by lanqs on 15-5-27.

//  Copyright (c) 2015 lanqs. All rights reserved.

//

// cpp实现

#include "usercenter.h"

//初始化 静态变量

UserCenterUserCenter::pRect =NULL;

UserCenterUserCenter::getInstance()

{

    if(!pRect)  // 是否为空

    {

        pRect =NULL;

        pRect =newUserCenter();

    

    }


    return pRect ;


}

bool UserCenter::init()    //获取数据源

{

    m_userInfo.userId=100;

    m_userInfo.level=1;

    m_userInfo.gold=20;

    return  true;

}

void UserCenter::refre()

{

    m_userInfo.level=20;



}







//

//  senceone.h

//  sence

//

//  Created by lanqs on 15-5-27.

//  Copyright (c) 2015 lanqs. All rights reserved.

//


#ifndef __sence__senceone__

#define __sence__senceone__


#include <stdio.h>

#include <iostream>

#include <string.h>

#include "usercenter.h"

using namespace std;

class HomeScence

{

    public:

    void printscen();

    static HomeScence* create();



    private:

    int m_level;


};


#endif /* defined(__sence__senceone__) */



//

//  senceone.cpp

//  sence

//

//  Created by lanqs on 15-5-27.

//  Copyright (c) 2015 lanqs. All rights reserved.

//


#include "senceone.h"


void HomeScence::printscen()

{

    UserInfo  info=UserCenter::getInstance()->getUserInfo();

    m_level=info.level;

    cout<<"首页等级"<<m_level<<endl;



}

HomeScence* HomeScence::create()


{

    HomeScence *pRect=NULL;

    pRect=new  HomeScence();

    return pRect;


}



//

//  main.cpp

//  sence

//

//  Created by lanqs on 15-5-27.

//  Copyright (c) 2015 lanqs. All rights reserved.

//


#include <iostream>

#include "senceone.h"

#include "secentwo.h"

#include "usercenter.h"

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

    // insert code here...

    UserCenter::getInstance()->init();  // 初始化 数据

    UserCenter::getInstance()->refre();

    HomeScence *mp=HomeScence::create();

    mp->printscen();

    return 0;

}


在一个场景里面获取用户信息 




0 0