Te pongo otro caso de ejemplo para que lo veas en otra situación, pero la respuesta de srWhiteSkull es correcta tambien:
// uso una struct para que los miembros sean publicos, pero tambien sirve usando clases
struct MyStruct{
double a;
double b;
};
class MyClass{
MyStruct private_struct;
public:
MyStruct getStruct()const{
return this->private_struct;
}
};
int main(){
MyClass *p_class = new MyClass;
p_class->private_struct.a = 10;
// ...
cout << p_class->getStruct().a << endl; // salida: 10
}
Si por ejemplo la <struct> tuviera una función que fuese <getA()> también puedes usar eso y hacer:
p_class->getStruct().getA();
Como ves sirve para "concatenar". Puedes ir analizando de izquierda a derecha cada paso. Tienes un puntero a <MyClass> que al llamar a <getStruct()> devolvería la <private_struct> que tiene la clase como miembro. Pero a esa <struct> le aplicas el <.a> para que devuelva sólo el valor a de toda la <struct>.
Esto también te permite concatenar más de dos funciones o miembros. Si trabajas con POO te encontrarás esto en códigos que usan varias clases y estas están relacionadas. Suerte