Ciao a tutti, avrei bisogno di un chiarimento, purtroppo non riesco a capire come ragionare se, all'interno di una classe, definisco una funzione, che sia il costruttore o un qualsiasi altro metodo quando lo dichiaro cioè esempio:
class Studente
{
friend ostream& operator<< (ostream &o,const Studente &c);
friend istream& operator>> (istream &i,Studente &c);
private:
string nome_studente;
int eta;
int voto;
public:
Studente()
{
};
Studente(string n,int c,bool se,int v):nome_studente(n),eta(c),sesso(se),voto(v)
{
};
string _nome_studente()const
{
return nome_studente;
};
};
(l'esempio non ha alcun significato specifico)
... il punto e virgola alla chiusura della classe è fuori da ogni dubbio ma invece il punto e virgola dopo la definizione di queste funzioni ci va? se fosse una semplice dichiarazione ci andrebbe sicuro, ma invece dopo lo "svolgimento" di una funzione non dovrebbe esserci, di fatto in alcuni esempi lo trovo e in altri no.
Forse si può fare in entrambi i modi? dipende dal compilatore?
Grazie per l'aiuto