I guess that you're compiling as 64-bit? In that case, your DerivedClass1 will probably be laid out in memory with this arrangement of bytes:
offset size type
0 8 pointer to virtual function table
8 4 int BaseClass::a
12 4 int BaseClass::b
16 4 int DerivedClass1::x
20 4 filler, so that the total size of this class is an even number of 64-bit (8-byte) words
The pointer to virtual function table is silently added to your class by the C++ compiler for any class that is part of a class inheritance hierarchy containing any virtual functions.