class Book
{
public:
Book( const string& title ) : title_( title ) { n_++;}
const string& title() const { return title_; }
static int numberOfBooks() { return n_; }
private:
string title_;
static int n_;
};
Forse per sottolineare che la stringa passata non viene modificata.costruttore book: perché il paramentro title dovrebbe essere una costante?
Cmq poteva risparmiarsi di utilizzare la constructor initializer list, che nn è necessaria.
Restituisce il titolo del libro. La funzione è const per sottolineare (e quindi correggere a tempo di compilazione) che al suo interno l'oggetto Book nn viene modificato.Cosa vuol dire tutto il metodo title? Perché quei const di qua e di la?
p.s. in C++ nn esistono i methods. Quello è Java. In C++ esistono le member functions
Per essere invocata senza far riferimento ad un oggetto della classe.Cosa ha di particolare un metodo statico?
Cioè puoi invocarlo come Book::numberOfBooks();