Hello
I have a problem with setting function pointer to another object
I have two classes, one is the object that must be hold pointer of function of second class:
UCLASS()
class MYPROJECT_API UMyItemWidget : public UUserWidget
{
...
typedef void(UMyItemWidget::*ItemChangeState)(int32 ID);
public:
void SetChangeStateCallback(ItemChangeState changeStateFunct) { _changeStateFunct = changeStateFunct; }
ItemChangeState _changeStateFunct = nullptr;
};
//Second class, *.h file
UCLASS()
class MYPROJECT_API UArrOfWidgets : public UUserWidget
{
...
public:
void Setup();
void OnChangeItem(int32 itemID);
};
//Second class, *.cpp file
UArrOfWidgets::Setup()
{
...
//ItemWidget is object of UMyItemWidget class
ItemWidget->SetChangeStateCallback(&UArrOfWidgets::OnChangeItem); //Error in that line
//error C2664: void UMyItemWidget::SetChangeStateCallback(UMyItemWidget::ItemChangeState)': cannot convert argument 1 from 'void (__cdecl UArrOfWidgets::* )(int32)' to 'UMyItemWidget::ItemChangeState'
}
UArrOfWidgets::OnChangeItem(int32 itemID)
{
...
}
What I have missed?