typedef 를 쓰고 안쓰고의 차이점..
글쓴이: 임종규 / 작성시간: 월, 2011/05/02 - 4:25오후
a.cpp
-----------------------------------------
void (**FuncPtrArray)(int);
....
FuncPtrArray = new (void(*)(int))[10];
=========================================
b.cpp
-----------------------------------------
typedef void(*FuncPtrType)(int);
FuncPtrType* FuncPtrArray;
.....
FuncPtrArray = new FuncPtrType[10];
=========================================
a 코드는 컴파일이 안되는데, b 코드는 컴파일이 됩니다.
new 로 배열처럼 할당할려면 기본 생성자가 있어야 한다고 하는데...
typedef 를 하면 기본 생성자를 만들어주는건가요?
아니면 a 코드가 컴파일 되게 할려면 어떻게 해야될까요?
Forums:
codepad.org 에서는 통과되었는데 모르겠군요. [10] 을 안에 쓰시면 됩니다.
new (void (*[10])(int));
codepad.org 에서는 통과되었는데 맞는건지 모르겠군요.
구문상으론 그렇게 해도 되야하는게 맞는데...
컴파일이 안되더군요... 컴파일러 문제인가..
p.s. 아.. 왜 난 같은 코드 붙혀서 codepad.org 에서 돌려도 에러가 나는건지;;
/* How to Love Others */
while(GetDepth(Love) < Enough) DoLove();
이렇게요. void
이렇게요.
void (**FuncPtrArray)(int);
FuncPtrArray = new (void(*[10])(int));
댓글 달기