Hallo zusammen,
angenommen ich habe eine Schnittstelle und einen Funktionsblock, der die Schnittstelle implementiert. Nun habe ich einen Pointer, der auf die Schnittstelle zeigt und einen Pointer, der auf den Funktionsblock zeigt. Kann mir jemand erklären, warum die folgende Typkonvertierung einen Fehler wirft?
angenommen ich habe eine Schnittstelle und einen Funktionsblock, der die Schnittstelle implementiert. Nun habe ich einen Pointer, der auf die Schnittstelle zeigt und einen Pointer, der auf den Funktionsblock zeigt. Kann mir jemand erklären, warum die folgende Typkonvertierung einen Fehler wirft?
Code:
INTERFACE IStep
FUNCTION_BLOCK SimpleStep IMPLEMENTS IStep
PROGRAM PLC_PRG
VAR
p1 : POINTER TO IStep;
p2 : POINTER TO SimpleStep;
END_VAR
...
p1 := p2; // Typ 'POINTER TO SimpleStep' kann nicht in Typ 'POINTER TO IStep' konvertiert werden
p2 := p1; // Funktioniert hingegen