Un miembro
static no debe ser inicializado desde el constructor sino que debe tener su propia "implementación" ya que entonces se estaría incicializando cada vez que se construye un nuevo objeto.
La incialización de miembros estáticos se hace tal que:
Código C++:
Ver originalclass POO
{
static int var;
};
int POO::var = X;
Pudiendo estar la inicialización tanto en la cabecera como en el fichero de implementación.
En tu caso además los arreglos son
const, luego no vas a poder modificar su valor una vez se hayan inicializado. Dado que los elemento static tienen su propia inicialización y que los has declarado
const, no es posible modificar su valor en el constructor.
El siguiente código te debería funcionar:
Código C++:
Ver originalconst AnsiString TForm1::HintsMessages={
"Este mensaje activa la ventana.",
"Este mensaje pone el foco en la ventana.",
// ...
};
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//...
}
También puedes plantearte usar
std::array. Se comporta como un
std::vector salvo en el detalle de que el tamaño es fijo, no puedes añadir nuevos elementos ni por supuesto eliminarlos... es el equivalente a lo que estás haciendo ahora mismo. Esta opción puede ser especialmente atractiva si necesitas usar iteradores.
Un saludo.