코드를 구현하다보니 생각지 못하게 프로세스 내부에서 데이터 공유가 많이 발생하였고
singleton으로 수정해야 되는 부분이 있어, 샘플 코드를 작성하였다.
- singleton.h
#pragma once
#include <iostream>
class Singleton
{
private:
static Singleton* pInstance;
Singleton() { num = 0; };
~Singleton() {};
private:
int num;
public:
static Singleton* getInstance()
{
if (pInstance == nullptr)
{
pInstance = new Singleton;
}
return pInstance;
}
void SetNum(int val)
{
num = val;
}
int GetNum()
{
return num;
}
};
Singleton* Singleton::pInstance = nullptr;
- testClass.h
#include "Singleton.h"
class Singleton;
class TestClass
{
public:
TestClass() {
single = Singleton::getInstance();
};
~TestClass() {};
void print()
{
int a = single->GetNum();
std::cout << a << std::endl;
}
private:
Singleton* single;
};
- main.cpp
#include <iostream>
#include "Singleton.h"
#include "TestClass.h"
int main()
{
Singleton* a = Singleton::getInstance();
Singleton* b = Singleton::getInstance();
a->SetNum(1);
std::cout << b->GetNum() << "\n";
TestClass tes;
tes.print();
return 0;
}
'Language > C++' 카테고리의 다른 글
[C++] Utf8 코드를 한글로 출력하기 (0) | 2021.05.24 |
---|---|
[C++] UTF-8 가 ~ 힣 출력 확인 코드 (0) | 2021.04.23 |
[C++][공통] 기본적인 개념 (0) | 2020.12.15 |
[C++] 포인터, 더블 포인터 사용 (0) | 2020.12.15 |
[C++] 헤더 파일 (0) | 2020.12.15 |