La differenza tra struct e class in C++ è solo nella dichiarazione.
Una struct ha per definizione i suoi membri pubblici, una classe li ha privati.
NESSUN ALTRA DISTINZIONE (scusa il maiuscolo)
Quindi non confonderti ma le stesse cose che puoi fare con un class li puoi fare con lo struct.
Se il costruttore te lo scrivessi così:
.h
struct Special_point {
Special_point();
Special_point(int x, int y);
CGAL::Point_2<Rep_class> pt;
Special_point *next_on_hull;
};
.cpp
Special_point::Special_point()
{
}
Special_point::Special_point(int x, int y)
: pt(x, y)
, next_on_hull(0)
{
}
sarebbe più facile per te capirlo?
Come vedi posso fare le stesse cose che si possono fare con le classi con l'unica differenza che se non dichiari un membro (variabile/funzione) come privata, questa sarà pubblica di default.