can a class have virtual data members?
No, but you can create a virtual function to return a pointer to what you call virtual data member
virtual
is a Function specifier...
From standard docs,
7.1.2 Function specifiers Function-specifiers can be used only in function declarations. function-specifier: inline virtual explicit
So there is nothing called Virtual data member.
Hope it helps...