Я предпочитаю первый вариант.Предположим, вы включили больше файлов, и эти файлы, в свою очередь, включают файл, содержащий #ifndef SOME_CLASS
.
Я думаю, что довольно легко обнаружить ошибки, если #define SOME_CLASS
не соседствует с #ifndef SOME_CLASS
.
// SomeClass.h
#ifndef SOME_CLASS
#include "OtherFile.h" // will eventually lead to #include "SomeClass.h"
#define SOME_CLASS
... boat load of code here...
#endif // SOME_CLASS