Effettivamente la dichiarazione è quella di una classe, anche se c'è scritto "struct". Forse il compilatore su cui è stato sviluppato il codice permette cose sporche del genere... Secondo me, converrebbe scriverci "class", perchè di solito le struct hanno solo attributi, e non metodi o costruttori.

Se poi ti si compila anche così, tanto meglio...