Changing Code of C++ Constructor not effect to Blueprint class

Constructor code:

I have a blueprint class, which is derived from this C++ Class (AFPSAIGuard).
If I comment the line with adding new delegate to event, for example, OnHearNoise and after compile by hot-reload, or close UE4 Editor and build by VS2017 (compiler logs that it’s not hot-reload, and it deletes all hot-reload files and build other) and after restart Editor - despite it the delegate keeps executing. But if I recreate the Blueprint Class - everything becomes to work well.
I’ve read a lot of about similar or same problems and their solutions. I understand that the main problem is CDO. But they’re supposed to be reinitialized during launching the editor, aren’t they? I’ve tried to use the button Compile in UE4 and Visual Studio, but it hasn’t help (

Thank you. I don’t know why, but I thought that all bindings should be placed in a constructor. Thanks

You should not bind event in constructor, as 1. Object at this stage is not fully initialized 2. You binding in default class object which might cause some runtime complications. Constructor should only set default variables and set up components.

Use init event like BeginPlay() to initiate the actor.

Also keep in mind that your code also runs on editor when you place it on the level, BeginPlay quarranty that code in it will run only during play mode.

There is a lot happening before BeginPlay and it is useful to know about it.
You can find the actor’s life cycle there: Unreal Engine Actor Life Cycle