C++ side only know C++ types.
If you create a variable on Blueprint the C++ base class won’t know that variable exists unless the variable is declared in C++ base class instead of Blueprint.
The reasons for that are many, unfortunately I’m feeling lazy today to go deeper :s
You can define in C++ get/set functions that can be used in Blueprints to pass variables to C++ code in base class, but Visual Studio won’t show you a dropdown list of variables you have only created on the Blueprint side.
Unity automatically workaround that making heavy use of dotNET code reflection, when using Unreal it feels somewhat clunky and confusing.