Какою директив лучше использовать для класса (#pragma once) или (#ifndef)?
Я за #pragma once
#ifndef костыль придуманный вместо реализации нормальной модульной системы, хотя бы по типу того же паскаля, если говорить о бородатых временах.
А я в заголовочных файлах оба варианта использую. Внешний — pragma once, внутренний — ifndef. У меня и в geany уже на ifndef вывешено автогенерирование этих "скобок". Дело в том, что еще не все компиляторы понимают pragma once, скажем, с sdcc были такие проблемы (не знаю, как сейчас — не проверял специально).