Mezclas C y C++, además de que confundes tipo con variable.
En tu union dices:
union polizas
{
struct autos;
...
};
Las uniones, al declararlas necesitan indicar qué nombres tomaran las variables que habrá dentro. 'struct autos' solo es un tipo de dato, falta el nombre de la variable.
Después usas mal una función. Tu dices:
pol[ind].autos.autos(ind);
Pasas a la función autos un argumento cuándo aquí
struct autos
{
...
autos(){
...
}
no hay argumento y no se puede inferir.