Se scrivi
Cronometro Crono;
Crono.Start();
va bene ma se scrivi
Cronometro *Crono;
Crono->Start();
commetti un errore (grave ma classico di chi sta imparando ...) perche' il puntatore non e' *inizializzato* ...
Cioe', prima di chiamare il metodo, ti devi assicurare che il puntatore *punti effettivamente* ad un oggetto che *esiste* ...
Il codice corretto, dovrebbe essere
Cronometro *Crono;
Crono = new Cronometro();
Crono->Start();
In piu', alla fine dell'utilizzo dell'oggetto, dovresti usare la
delete Crono;
per chiamare il distruttore, che nell'altro caso, sarebbe chiamato automaticamente quando l'oggetto esce dallo scope.
Nel caso di
IrrlichtDevice *device = CreateDevice(...);
non tieni in considerazione il fatto che la funzione CreateDevice, sicuramente, restituisce un "puntatore ad oggetto IrrlichtDevice" e quindi, dall'altra parte, ci deve essere un puntatore a tale oggetto.