Should i create blueprint out of c++ class that i have created ?

I keep nearly all logic in source and expose variables to blueprint in order to tweak them without closing and recompiling every time. You only need to create a blueprint derived from your code if you want to modify exposed/create functionality quickly without creating another C++ class, or if your just not fast enough at coding.
You could create a project entire in C++ afaik but you would have to recompile your source for every little change.

C++ does the heavy lifting while blueprint adds small changes and pretties it up. That’s how I tend to use them.

EDIT - saw new reply

Your Enemy in the level will perform its C++ logic, plus any changes you have added into the blueprint. If your code has a function that moves the Enemy forward Var=10 units, the class will move forward 10 units. If you derive a blueprint class and set Var=5 in blueprint, your Enemy will move forward 5 units.

Specifiers are useful for coupling C++ and blueprint functionality

https://docs.unrealengine.com/en-US/…ers/index.html
https://docs.unrealengine.com/en-US/…ers/index.html