Перевод статьи подготовлен в преддверии старта курса «C++ Developer. Professional».
Хочу обратить ваше внимание на антипаттерн, который я часто встречаю в коде студентов на Code Review StackExchange и даже в довольно большом количестве учебных материалов (!) других людей. У них имеется массив, скажем, из 5 элементов; а затем, поскольку магические числа — это плохо, они вводят именованную константу для обозначения количества элементов «5».
void example()
{
constexpr int myArraySize = 5;
int myArray[myArraySize] = {2, 7, 1, 8, 2};
...
Но решение это так себе! В приведенном выше коде число пять повторяется: сначала в значении myArraySize = 5
, а затем еще раз, когда вы фактически присваиваете элементы myArray
. Приведенный выше код столь же ужасен с точки зрения обслуживания, как:
constexpr int messageLength = 45;
const char message[messageLength] =
"Invalid input. Please enter a valid number.n";
— который, конечно, никто из нас никогда не напишет.Читать полностью »