class UserManager
{
public:
static UserManager um;
static UserManager* GetInstance()
{
static UserManager um;
std::cout << "class static member : " << &(UserManager::um) << std::endl;
std::cout << "function static member : " << &(um) << std::endl;
return &um;
}
void AddUser() { _userCount++; }
int GetUserCount() { return _userCount; }
private:
int _userCount = 0;
};
UserManager UserManager::um;
int main()
{
for (int i = 0; i < 1; i++)
{
UserManager::GetInstance()->AddUser(); //---①
}
std::cout << &(UserManager::um) << std::endl; //---②
std::cout << UserManager::GetInstance()->GetUserCount() << std::endl; //---③
}
출력:
class static member : 00B7C138 //---①
function static member : 00B7C13C //---①
00B7C138 //---②
class static member : 00B7C138 //---③
function static member : 00B7C13C //---③
1 //---③
--------------------
class UserManager
{
public:
static UserManager um;
static int e;
static UserManager* GetInstance()
{
static UserManager um;
std::cout << "class static member : " << &(UserManager::um) << std::endl;
std::cout << "function static member : " << &(um) << std::endl;
return &um;
}
void AddUser() { _userCount++; }
int GetUserCount() { return _userCount; }
private:
int _userCount = 0;
};
int e = 3;
int a;
int b = 1;
int arr[3] = {1, 2, 3};
int brr[3];
UserManager UserManager::um;
int main()
{
int crr[3] = { 4, 5, 6 };
int drr[3];
int c;
static int d;
std::cout << "초기화 없는 전역 변수 a : " << &a << std::endl;
std::cout << "초기화 있는 전역 변수 b : " << &b << std::endl;
std::cout << "초기화 없는 지역 변수 c : " << &c << std::endl;
std::cout << "초기화 없는 정적 변수 d : " << &d << std::endl;
std::cout << "초기화 있는 정적 class 변수 e : " << &e << std::endl;
std::cout << "초기화 있는 전역 배열 arr : " << &arr << std::endl;
std::cout << "초기화 없는 전역 배열 brr : " << &brr << std::endl;
std::cout << "초기화 있는 지역 배열 crr : " << &crr << std::endl;
std::cout << "초기화 없는 지역 배열 drr : " << &drr << std::endl;
for (int i = 0; i < 1; i++)
{
UserManager::GetInstance()->AddUser(); //---①
}
std::cout << &(UserManager::um) << std::endl; //---②
std::cout << UserManager::GetInstance()->GetUserCount() << std::endl; //---③
}
출력:
'코드 > C++' 카테고리의 다른 글
release 배포 시 dll 오류 날 때 (2) | 2023.11.21 |
---|---|
std::to_wstring(int), _tow_s(int, wchar_t, 2 or 10); (0) | 2023.11.16 |
github open source rpg (0) | 2023.10.03 |
SFML CMAKE (0) | 2023.10.02 |
깃헙 남의 게임 코드 실행 (0) | 2023.10.01 |
댓글