티스토리 뷰

언어/C++

8.10 정적 멤버 변수

js0331 2020. 4. 23. 21:14
#include <iostream>

using namespace std;

int generateID()
{
	static int s_id = 0;
	return ++s_id;
}

int main()
{
	cout << generateID() << endl;
	cout << generateID() << endl;
	cout << generateID() << endl;
	
	return 0;
}

// 1
// 2
// 3

 

#include <iostream>

using namespace std;

class Something
{
	public:
	static int s_value;	// static 멤버 변수는 이니셜라이즈 불가!
};

int Something::s_value = 1;

int main()
{
	Something st1;
	Something st2;
	
	st1.s_value = 2;
	
	cout << &st1.s_value << " " << st1.s_value << endl;
	cout << &st2.s_value << " " << st2.s_value << endl;
	
	return 0;
}

// 0x55b77c704010 2
// 0x55b77c704010 2

 

#include <iostream>

using namespace std;

class Something
{
	public:
	static int s_value;	// static 멤버 변수는 이니셜라이즈 불가!
};

int Something::s_value = 1;	// define in cpp

int main()
{
	cout << &Something::s_value << " " << Something::s_value << endl;
	
	Something st1;
	Something st2;
	
	st1.s_value = 2;
	
	cout << &st1.s_value << " " << st1.s_value << endl;
	cout << &st2.s_value << " " << st2.s_value << endl;
	
	Something::s_value = 1024;
	
	cout << &Something::s_value << " " << Something::s_value << endl;
	
	return 0;
}

// 0x55e452a97010 1
// 0x55e452a97010 2
// 0x55e452a97010 2
// 0x55e452a97010 1024

 

'언어 > C++' 카테고리의 다른 글

8.12 친구 함수와 클래스 friend  (0) 2020.04.24
8.11 정적 멤버 함수  (0) 2020.04.24
8.9 클래스와 const  (0) 2020.04.23
8.5 위임 생성자  (0) 2020.04.22
8.4 생성자 멤버 초기화 목록  (0) 2020.04.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함