I will use this space because it is easy to add code, but I actually have a question for you. You are saying that you have class A, lets say the following (this cames from here):
public:
/** Broadcasts whenever the layer changes */
DECLARE_EVENT( FLayerViewModel, FChangedEvent )
FChangedEvent& OnChanged() { return ChangedEvent; }
protected:
void BroadcastChanged()
{
ChangedEvent.Broadcast();
}
private:
/** Broadcasts whenever the layer changes */
FChangedEvent ChangedEvent;
In this particular case you can see that there is no way to call Broadcast from a this class or any class that Inherits from it right?
Now, suppose you make FChangedEvent ChangedEvent;
public. With this setup are you saying that from your class B you can call the broadcast method?
class B
{
public:
MyClass A;
void Method()
{
A.ChangedEvent.Broadcast();
}
};
Is that what you are saying? If so then yes, I can’t see a reason for this not to work. The event still belongs to class A and it is being called by class A.