Un lenguaje de tipo estático es un lenguaje donde cada variable tiene un tipo asignado en tiempo de compilación. En C++, esto significa que debe decirle al compilador el tipo de cada variable, es decir, si es un int, o un doble, o una cadena, etc. Esto contrasta con los lenguajes de tipo dinámico como JavaScript o PHP, donde cada variable puede contener cualquier tipo, y ese tipo puede cambiar en tiempo de ejecución.
Un lenguaje de forma libre es aquel en el que no hay requisitos sobre dónde deben pasar varios símbolos entre sí. Puede agregar tantos espacios en blanco como desee (o dejar de lado cualquier espacio en blanco que no le guste). No es necesario que inicie las instrucciones en una nueva línea, y puede poner llaves en los bloques de códigos en cualquier lugar que desee. Esto ha llevado a algunas guerras santas sobre la forma correcta de escribir C++, pero en realidad me gusta la libertad que te da.
Espero que esto ayude!
** ¿Dónde ** en SO se menciona esto? – Oded
@Oded: haga clic en la etiqueta. Es el extracto de la wiki de la etiqueta C++. – sepp2k