나는 기본 클래스 테스트델파이에서 일반 typecasting하는 방법?
type
Tinfo = procedure of object;
Test = class(TObject)
public
procedure Add (const a : Tinfo); reintroduce ;
end;
procedure Test.Add(const a: Tinfo);
begin
Writeln('base class add function');
// dosomething more
end;
아래 정의하고 난이 기본 클래스
TTesting<T> = class(Test)
public
procedure Add (const a : T ); reintroduce ;
end;
내가 Tinfo
-T
를 타입 캐스팅 오전 파생 제네릭 클래스를 가지고 있지만, 그것은 나에게 오류를 제공
procedure TTesting<T>.Add(const a : T);
begin
inherited Add(Tinfo(a)); // gives me error here
end;
내가 구현할 수있는 방법이 있습니까?
형식 식별자를 변환하려고합니다. 'a' ('a'의 타입)가 아니라'a' (변수)를 사용해야합니다. 하지만 이건 안전하지 않아! 그리고 어쨌든 코드가 작동하는지 확실하지 않습니다. 뭐하고 싶어? 어쩌면 다른/더 나은 접근 방법이있을 수 있습니다. – linluk
이 질문에 여러 번 질문했습니다. 왜 우리에게 진짜 문제를 말하지 않니? –
첫 번째 객체에서'Add '에'reintroduce'하는 이유는 무엇입니까? TObject에는 'Add'라는 가상 메소드가 없습니다. 그래서 추측을 해봅시다. 이것은 실제 코드가 아닙니다. 그리고 당신이하려는 것은 의미가 없습니다. 함수 포인터에 대한 집착은 무엇입니까? –