Inventory : Why can't i access my Item properties?

Pointers in C++ can point to inherited class objects without issue. The only thing is, if you need to access a child class’s function (W_test) you will then need to cast to W_test. For instance:

AWeapon* MyWeapon = new AChildWeapon(); //Where AChildWeapon : public AWeapon

Would be totally valid in raw, vanilla C++. Of course, you wouldn’t want to use new (for the most part) in UE4 engine (as objects won’t be created properly).

But yes, that is the general idea. Again look at the blog posts from tomlooman.com as it is very helpful in doing what you are trying to do.