Function already has a body (interface)

When I’m trying to compile my project an error :

Error	C2084	function 'void IIDamageable::DamageResult(int32)' already has a body

pops up

My .h:

#pragma once

#include "Object.h"
#include "IDamageable.generated.h"

class UIDamageable : public UInterface
class IIDamageable
		virtual void TakeDamage(int32 Damage);
		virtual int32& GetMaxHealth() = 0;
		virtual int32& GetCurrentHealth() = 0;
	UFUNCTION(BlueprintImplementableEvent, Category = "Character")
		void DamageResult(int32 cHealth);

and .cpp

#include "Project.h"
#include "IDamageable.h"
#include "Engine.h"

UIDamageable::UIDamageable(const class FObjectInitializer& ObjectInitializer)
	: UInterface(ObjectInitializer)

void IIDamageable::TakeDamage(int32 Damage)
	GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, "Base class error");

void IIDamageable::DamageResult(int32 cHealth)
	GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, "Base class error");

Change to this in your .h:

UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Character")

and in your .cpp:

void IIDamageable::DamageResult_Implementation(int32 cHealth)

For a thorough explanation, here is a video (I think you can start at part 3 which is the link, but if you have doubts, you can check the first two parts as well):

Another useful source: