Проблема следующая: есть два класса matrix и vector2, vector3, vector4, необходимо создать оператор который будет работать с двумя классами, но так, чтобы при подключении одного из них не подтягивался другой.
Сделал хедер который подключаю в конец обоих файлов:
#if defined(_MATRIX_HPP) /* макросы по типу _NAME_HPP, это символ который дефайнится если соответствующий хедер подключён */
# if defined(_VECTOR_2_HPP)
Vector2 operator*(const Matrix &l, const Vector2 &r) { ... }
# endif
# if defined(_VECTOR_3_HPP)
Vector3 operator*(const Matrix &l, const Vector3 &r) { ... }
# endif
# if defined(_VECTOR_4_HPP)
Vector4 operator*(const Matrix &l, const Vector4 &r) { ... }
# endif
#endif
Реализация как по мне крайне неадекватная(или нет?). Как это делают нормальные люди?
А что за vector 2, 3, 4?
у меня нет ответа по существу вопроса, но имена, которые начинаются с подчеркивания и большой буквы, лучше не использовать
Ребят, я таки не понял. Это вопрос слишком сложный, или я слишком тупой? 😂🙃
Обсуждают сегодня