Hola.
El uso de variables globales es totalmente desaconsejable y sólo en muy, pero muy contados casos reporta algún beneficio.
El donde las declares, dependerá del alcance que quieras darle. Si los que utilizan la clase o structura necesitarán tener acceso a ellas, las declararás dentro de un especificador de acceso publico y si sólo hara uso de ellas la propia clase o estructura conviene declararla dentro de un especificador de acceso privado. Si deseas ampliar sobre tipos de miembros, revisa este
enlace
class y
struct son equivalentes, las diferencias es que en la clase los miembros son por defecto privados, en la estructura lo son públicos. También por lo general, los argumentos tipo
class se pasan por referencia y los tipo
struct por valor.
Saludos.