static 클래스 변수 동적 할당

WanJu Kim·2023년 10월 16일
0

C++

목록 보기
81/81

성장 신호가 생겼다.

클래스 A 안에 클래스 B 변수를 만들어서, 이를 모든 클래스 A가 공유하는 변수로 만들어주고 싶었다.

당연히 static이 들어가야 할 것이고,

초기화는 이런 식으로 했다.

A.h

class A
{
public:
	A();
	virtual ~A();

	...
protected:
	static B* b;
	...
};

#include "A.h"

B* A::b = nullptr;


A::A()
{
	...
	b = new B();
}

이렇게 하면 어떤 상황이 펼쳐지나? 기껏 공유하려고 만들었던 변수 b인데, 생성할 때마다 새로운 주소를 '동적 할당' 시켜서 그 의미가 사라지게 되었다. 그럼 어떻게 하나?


#include "A.h"

B* A::b = new B();


A::A()
{
	...
	//b = new B();
}

코드 블럭 외부에서 동적 할당을 시켜주면 간단히 성공.

profile
Question, Think, Select

0개의 댓글