개발/C++

[C++] static 변수

hojak99 2016. 12. 20. 14:31

C언어에서 static과 C++에서의 static 은 다르다. 

C++에서는 전역이라는 개념이 없다. 그것을 대체하기 위해서 static이 있는 것이다.


#include <iostream>

class A {
private:
	static int count;

public:
	A() {
		count++;
	}

	void showCount() {
		std::cout << count << std::endl;;
	}
};

int A::count = 0;

int main()
{
	A *a = new A();
	a->showCount();
	//출력값 : 1

	A *b = new A();
	b->showCount();
	//출력값 : 2

	return 0;
}


17번 째 줄에서 보시다시피 static 변수를 초기화할 때는 main 함수 안이 아닌 밖에서 초기화해주어야 한다.

또한, static 변수는 선언과 초기화를 동시에 하지 못한다는 것을 기억하자


반응형