mi ritrovo con questa definizione di classe ma non riesco a comprendere alcune parti della sintassi

class Email {
String _from, _to, _subject, _body;
public:
Email(
const String& from,
const String& to,
const String& subject,
const String& body
) : _from(from), _to(to), _subject(subject), _body(body) {}
const String& getFrom() const { return _from; }
const String& getTo() const { return _to; }
const String& getSubject() const { return _subject; }
const String& getBody() const { return _body; }
};non riesco a capire la sintassi _from(from) del costruttore, è per casdo analoga a scrivere
{ _from = from; }

e ancora nelle funzioni getter, perchè l'operatore indirizzo viene usato dopo la definizione del valore restituito?
ha qualcosa a che fare con la definizione di funzioni relativi alla TLS

aiutatemi vi prego