1)I due punti dopo la dichiarazione del costruttore indicano che verranno inizializzate alcune proprietà della classe.
2)subject_(subject) significa che il membro subject_ sarà inizializzato con il valore di subject, cioè del parametro passato al costruttore. Stesso discorso per from_ (from)
3) Infatti const messo lì non significa che fa parte degli argomenti, ma semplicemente che il metodo non varia in alcun modo lo stato dell'istanza (in altre parole, significa che non cambia il valore di alcuna proprietà, in questo caso from_ e subject_)
Spero di essere stato chiaro...