Delegate events does't work?

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.