[C++] static

KWANHO PARK·2025년 4월 18일

CPP

목록 보기
10/24
/*
	static - 클래스 멤버. this 포인터가 없음. 객체들이 공유함
*/
#include <iostream>

class StaticTest {
public:
	int n;
	static int static_n;		// static 멤버 변수
	StaticTest();
	void print();
};
int StaticTest::static_n = 10;	// static 멤버변수 초기화는 클래스 외부에서 해야 함
StaticTest::StaticTest() {
	n = 20;
	//static_n = 10;
}

void StaticTest::print() {
	std::cout << "static_n: " << static_n << "  " << "n: " << n << std::endl;
}

int main()
{
	StaticTest obj1, obj2;
	obj1.print();
	obj2.print();

	obj2.static_n = 1000;	// StaticTest 타입의 모든 객체들이 이 값을 공유함
	obj2.n = 50;
	obj2.print();
	obj1.print();			// obj1의 static_n도 1000
	return 0;
}

0개의 댓글