Acceder a un metodo de un objeto desde otra clase C++

No se si esto es posible hacerlo de forma rápida, se me ocurre alguna forma enrevesada de hacerlo

tengo una clase

class pepito{
...
virtual void mimetodo(void);
}

y otra clase

class juanito{

pepito uno;
pepito dos;
pepito tres;
......
}

la pregunta es ...en el archivo cpp de juanito existe alguna manera de llamar al método mimetodo del objeto pepito uno y así sucesivamente

al estilo

void juanito::uno_mimetodo(){
}

void juanito::dos_mimetodo(){
}
No puedes llamar a los métodos «directamente», sino que tienes que crear un objeto del tipo pepito y llamarlos.


class juanito {


void metodoChachi() {
  pepito p();
  p.uno_mimetodo();
p.dos_mimeotodo();

}
}



Por otro lado, recuerda que en C++ se recomienda hacer las declaraciones en los .h y las definiciones en los .cpp, y cuando necesites usar otra clase incluir los .h, por ejemplo, en juanito.h tendrías que incluir el pepito.h
La forma que te ha dicho el compañero anterior es la correcta, si el método no depende del objeto instanciado tal vez te interese hacerlo static.
Yo no acabo de entender bien lo que quieres :-?
A ver las clases o lo que quieras compartir a la cabecera, luego en el cpp lo puedes declarar y usar. Si la funcion es estatica puedes usarla sin crear un objeto de una clase que lo contenga, si no es estatica deberas crear un objeto x de clase X y usarlo.

Ah y acuerdate de darle visibilidad y que no sea privada
bueno, me he esplicado un poco mal por que veo que vuestras respuestas no son lo que esperaba, ahora mismo estoy liado con esto a ver si me explico mejor.

tengo una clase la cual tiene esta función



void Sa::sasa(void (*func)()){
func();
}


el caso es que desde otra clase tengo declarado un objeto de la anterior de forma que tengo acceso a su metodo pero no puedo pasarle una funcion
Sa *objeto;
void clase2::func2(){
........
}

objeto->sasa(func2); --->aquí es donde me da el problema he probado varias formas pero me salta error

basicamente es esto ahora mismo.
Gracias a todos al final el problema era por que la función debía estar declarada como static.
7 respuestas