class A

{

void Init();

AbstractB* b; //추상 클래스 

}

-----------------------------

원본 

void A::Init()

{

//이전 작업

CreateB(&b); //CreateB는 외부 함수라 이쪽에서 수정못함

//이후 작업

}


-----------------------------



뭔가 앞뒤 내용이 너무 많아서 함수를 분리해서


---------------------------------

현재


void Create(AbstractB** b)

{

//b에 필요한 작업

CreateB(b);

}

-----------------------------



현재 위 함수 상태인데



------------------------------

AbstractB* GetB()

{

//B에 필요한 작업

AbstractB* localB;

CreateB(&localb);

return localB;

}

----------------------------


대충 이런 형식으로 하고싶단 말이지




클래스가 추상 클래스가 아니면 new 때려박아서 어떻게될거같기도한데 추상 클래스임


그렇다고 new 안쓰면 지역 포인터 반환이니 함수 끝나는 시점에서 메모리 잘릴거같고


----------------------------------------

AbstractB GetB()

{

//B에 필요한 작업

AbstractB* localB;

CreateB(&localb);

return *localB;

}



void A::Init()

{

//앞 함수들 실행

b=&GetB();

//뒤 함수들 실행

}


----------------------------------------

이렇게하면...똑같이 삭제되...나? 씨바...



다이렉트X쪽 ID3D11Texture2D 같은 버퍼 할당쪽에 쓰려고 함


GetB는 A가 선언된 헤더와 다른 헤더에 선언되있음. GetB를 A의 메소드로 밀어넣는건 안하고싶다. A다른 함수도 많아서...