Код, который вы вставили, мне не подходит, в этом смысле кажется, что он не слипается.
Что делают эти три строки:
a = 0;
a++;
a = new supplement();
Вы, кажется, делаете три противоречивые вещи с там.Я предполагаю, что a должен быть указателем на какую-то внешнюю вещь, которую вы не показываете.
Тогда что такое
sup2
, какое-то отношение к дополнению ()сделано раньше?