У меня был этот разговор с коллегой, и он оказался интересным. Скажем, у нас есть следующий класс POD
struct A {
void clear() { memset(this, 0, sizeof(A)); }
int age;
char type;
};
clear
, предназначенный для очистки всех членов, установив значение 0
(побайтно). Что может пойти не так, если мы будем использовать A
в качестве базового класса? Здесь есть скрытый источник ошибок.