Catching event without ever knowing instance that called it c++

I wanted to test it and think i copied everything from you except the names, but I get an error from this code:

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "TestInterface.generated.h"

DECLARE_MULTICAST_DELEGATE(FTestDelegate);

UINTERFACE(MinimalAPI)
class UTestInterface : public UInterface
{
	GENERATED_BODY()
};
class RTS_API ITestInterface
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:

	static FTestDelegate TestDelegate;

	ITestInterface() {
		TestDelegate.AddRaw(this, &ITestInterface::InterfaceFunction);
	}
	UFUNCTION()
		virtual void InterfaceFunction() {}
};

I get the error LNK2001: Cant resolve symbol:

“public: static class TMulticastDelegate ITestinterface::TestDelegate”

EDIT:
FDelegate ITestInterface::TestDelegate;

in the .cpp does the trick, don’t know why :D.

Thanks for your help!