You're using an abstract baseclass for common member variables, but you're not using them. You have m_health, so why does each leaf class still get a separate "snakelife" or "ninjalife"?
I'm getting the feeling that you copied the base class from a tutorial somewhere, but didn't read beyond that.
NONO man,i am just programming 1,5 months and c++ is my first and i am 15-16
i am trying to make a big game which other make it in 4 months.I created alone i tell the truth.What should change?