As keskiverto stated, #define is a holdover from C. #defines were (and still are) a preprocessor facility that simply perform text substitution. They can appear to simplify your code, or they can make you code more difficult to read. #defines have global scope so they can unexpected consequences if used where not intended.
C++ templates are also a type of macro facility but with a better fit into the language.