Because you are calling a Member function.
In order to call these member functions you must have a class instance to call it.
You can also make UInteract a child of UQuestInteraction or make the function static so that you do not need to call it without a class instance (but you need to know when to use static) .
If you do not know what this means then my suggestion is to study C++ a bit more. These issues are C+±related and not UE4 related.
No. If it’s a class non-static member function, you must have an instance of the class in order to call it.
If you do not have experience with C++, I highly recommend learning C++ first before using C++ with Unreal. Or, stick with Blueprints.