На основании предоставленного кода здесь ;Разумно предположить, что textbox1 и т. Д. Ссылаются на некоторое большое количество идентично типизированных объектов в пользовательском подклассе «form».Лучшее решение будет включать следующее:
private std::array<TextBox> TextBoxes(49);
В противном случае, если объекты могут быть просто на одинаковом расстоянии друг от друга в памяти, может также работать следующий обходной путь.
Следующий код НЕ ДОЛЖЕН использоваться в профессиональной кодовой базе
В дополнение к проблеме, основанной на согласованном расположении блоков в памяти, это решение также рискует писать и читать из недопустимых областей памяти, поскольку нет гарантированных границ, как в случае со стандартным массивом.
size_t stepSize = static_cast<char*>(&(this->TextBox1)) - static_cast<char*>(&(this->TextBox0));
s[i] = (static_cast<TextBox*>(static_cast<char*>(&(this->TextBox0) + stepSize * i)))->Text;
Это просто берет расстояние между первыми двумя текстовыми полями в памяти формы (в байтах, чтобы избежать проблем выравнивания),и использует это расстояние для экстраполяции адреса других текстовых полей.