Yes, you can mix and match. Usually you would create the C++ as a plugin (such as a DLL on Windows) and you can call into those functions from GDScript or integrate them otherwise. In most cases, I would say you should use GDScript for basic gameplay stuff. C++ is only needed for advanced functionality (like your scripting language) or if you need extreme performance.