Title says its all. I’m struggling with calling implementation of my interface funtion from the base class.
Here is an example:
I got interface, let’s call it ITestInterface
class MYPROJ_API ITestInterface
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
void MyTestFunction();
}
and I got class that implements this interface
UCLASS()
class MYPROJ_API ABaseTestActor : public AActor, public ITestInterface
{
GENERATED_BODY()
public:
ATestActor();
virtual void MyTestFunction_Implementation() override;
};
and than I got derived class.
UCLASS()
class MYPROJ_API ADerrivedTestActor : public ABaseTestActor
{
GENERATED_BODY()
public:
ADerrivedTestActor ();
virtual void MyTestFunction_Implementation() override;
}
Inside of the DerrivedTestActor::MyTestFunction_Implementation()
I want to do something like Super::MyTestFunction()
but since it’s and interface
I have to use proper Execute_
call and pass the pointer to the object on which the function should be called.
I 've tried Super::Execute_MyTestFunction(this) and it compiles but I got “Fatal Error” during the runtime.
I’ve also tried something like this
Super* thisSuper = Cast<Super>(this);
thisSuper->Execute_HandleGrab(thisSuper)
but it also throws Fatal Error during runtime.
Does anyone know how to call such a function? thanks in advance.