How can I make a callable function for a C++ class without initiation?

I think encapsulating the item in a struct or UObject is the way to go. Have everything that needs to be available at “inventory time” be available.
Only spawn the item when you really need it.

That is how I implement my inventory stuff most of the time.