In terms of 'shared' for memory, there is KSM that combines identical memory pages, so they are technically shared between VMs. For the CPU, everything is shared, because all VM or LXC processes are real processes on the host, so ordinary scheduler is responsible for their cpu time. Disk is per default dedicated, e.g. for ZFS you can bind-mount them to other hosts so that is kind of shared.