동적 배열을 다른 클래스에서 사용하려면..?
다음 예제를 살펴 봅시다.
-------------------------------------------------------------
class AAA
AAA::TestA()
{
// 문자열 2차원 배열 선언
char(* strResult)[15] = new char[500][15];
}
class BBB
#include "AAA.h"
AAA testa; -> testa class 변수 선언
BBB::TestB()
{
while( ... )
{
printf( "%s", testa.strResult[i] ); // 에러
}
}
-------------------------------------------------------------
위의 예제에서 처럼 클래스 AAA에 선언된 배열 strResult를 어떻게 가져올 수 있을까요?
class AAA에서 다음과 같은 접근 제어 함수를 만들 수 있습니다.
"AAA.h"
class AAA
{
public:
char (*GetStrResult())[15]; // 2차원 배열 포인터를 리턴
}
"AAA.cpp"
// 클래스 AAA의 멤버인 2차원 배열 포인터를 아래와 같이 리턴할 수 있습니다.
char (*AAA::GetStrResult())[15]
{
char (*strResult)[15] = new char[500][15];
return strResult;
}
"BBB.cpp"
BBB::TestB()
{
char (*ptr)[15] = NULL;
while( ... )
{
ptr = testa.GetStrResult();
printf( "%s", ptr + x ); // x는 출력할 문자열의 인덱스
}
}
Written By Sim-Hyeon, Choe