All challenges
Multiple ChoiceIntermediate 45s

Member pointer size

Why is `sizeof(&Class::data_member)` often 8 bytes on 64-bit for single inheritance, while `sizeof(&Class::virtual_member)` can be 16?
Options
  1. 1Because a member function pointer stores a copy of the whole object it will eventually be invoked on.
  2. 2Because data member pointers are always 4 bytes, while member function pointers are always 16.
  3. 3Because virtual functions cannot have pointers-to-member taken at all, so the size is meaningless.
  4. 4A pointer-to-member-function must encode the vtable offset/dispatch info, so it can be larger than a plain data-member pointer.

Think you can answer under pressure?

Get matched and answer live questions in 3-minute 1v1 battles. Elo ranking, badge tiers and bragging rights on the line.

Play this in a 3-minute battle