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
- 1Because a member function pointer stores a copy of the whole object it will eventually be invoked on.
- 2Because data member pointers are always 4 bytes, while member function pointers are always 16.
- 3Because virtual functions cannot have pointers-to-member taken at all, so the size is meaningless.
- 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.