ECS Game Domain specifics is, that you have more of all these things.
So component C++ is POD struct. And the key point is that you have a Container of POD.
And acces and managing POD’s is through the Container interface for example STD::ARRAY or STD::VECTOR. Prefering acces using container index not pointer way.
Because ECS and related cache locality using those cores and caches optimal.
Is update the components in system class that uses the container to process them in bulk.
You often won’t see any if all downsides of inheritance in very small scoped games like PONG.
But in ARMA or Homeworld scope of game with huge diversity of entities you will.
ECS is plural , EntityID’s , component’s so there is point there is mix of OOP but it at above container level.
Entities and components container interfaces and managers.