Хотя это абсолютно не рекомендуется, это возможно.Препроцессоры C (или C ++) заменяют любое имя на указанное определенное значение, не заботясь об их значении.В конце концов, они просто препроцессоры.
Итак, скажем, у вас есть этот заголовочный файл:
generic_class.h
class ClassName
{
public:
ClassName()
{
//
}
};
Вы можете получить несколько экземпляров этого класса, напримерthis:
#define ClassName Server
#include "generic_class.h"
#undef ClassName
#define ClassName Clients
#include "generic_class.h"
#undef ClassName
Обратите внимание, что вы не должны добавлять охрану в заголовок.
Этот код, конечно, ужасен.