Да, это будет работать.(Не обращая внимания на проблему с подчеркиванием, на которое указывают другие.)
Директива #include "MyClass.h"
просто копирует все содержимое файла MyClass.h
и вставляет его вместо #include
.С точки зрения компилятора есть только один исходный файл, составленный из файла, указанного пользователем, и всех включенных файлов.
Сказав это, было бы намного лучше, если бы вы использовалиязыковая конструкция вместо директивы препроцессора.Например, замените:
#define _BufferSize_ 64
на
constexpr size_t BufferSize = 64;
Единственное, что он делает иначе, чем #define
, - это то, что он указывает тип значения (size_t
в этом случае).Кроме того, второй код будет вести себя так же, и он избегает недостатков препроцессора.
В общем, старайтесь избегать использования директив препроцессора.Это старый механизм, который использовался, когда c ++ еще не делал этого на языке.