C++을 delphi로 컨버팅하다가 문제가 생겨서 질문을 드려봅니다.
C++에서는 구조체 안에 함수를 넣기도 하더군요.
밑에는 제가 델파이로 바꿔본겁니다.
type
TestFunc = Function(iVal: integer): string;
TestFunc2 = Function(iVal: integer): string;
TestRec = record
iInt: integer;
Func: Function(iVal: integer): string;
end;
const
ar: array[0..1] of TestRec = (
(iInt: 0; Func: TestFunc),
(iInt: 1; Func: TestFunc2)
);
const 안의 배열에서 함수를 넣어 사용하고 싶은데 계속 에러만 납니다.
이것이 되는건지 안되는건지 알고 싶구요 가능하다면 해결책을 제시해 주시면 감사하겠습니다.
만약 된다고 한다면 불러서 사용할때는 어떻게 하는지도 알고 싶습니다.
하다 하다 안되서...더운데 짜증만 나네요...(__)
델파이도 똑같이 합니다.
상수 선언하실때는 상수를 넣어주셔야하는데 님은 변수형을 넣어주셨네요... 당연히 에러가 나죠... C++도 그렇게 하시면 에러가 납니다.
불러서 사용하는 것은 간단합니다.
Rv := ar[0].Func(ival);
아래처럼 바꾸세요..
Function TestFunc(iVal: integer): string;
Function TestFunc2(iVal: integer): string;
type
TestRec = record
iInt: integer;
Func: Function(iVal: integer): string;
end;
const
ar: array[0..1] of TestRec = (
(iInt: 0; Func: TestFunc),
(iInt: 1; Func: TestFunc2)
);
Function TestFunc(iVal: integer): string;
begin
......
end;
Function TestFunc2(iVal: integer): string;
begin
......
end;
^^ 항상 즐코하세요...