Hola amigos, me ha surgido una gran duda y quería compartirla para ver si alguien que la tenga clara me puede abrir el horizonte. Resulta que estoy trabajando con un framework para realizar juegos, y he visto que ocupan mucho lo que voy a explicar a continuación, que por lo visto es valido porque compila sin problemas y además anda bien y me esta funcionando, sin mas preámbulos paso a explicar mi duda.
Tengo una clase llamémosla X , que hereda de la clase que la vamos a llamar Y, resulta que la clase X tiene un método estatico, y mi duda es la siguiente: por medio de ese método estatico pueden acceder a cualquiera de los métodos no estáticos de las dos clases e invocarlos. Lo pongo con código para que se entienda mejor, no entiendo como es esto posible. Como ese método estatico permite apuntar e invocar a cualquier método no estatico de las clases.
Y HACEN COSAS COMO ESTAS CON ESTE METODO ESTATICO
EN DONDE EL METODO setDesignResolutionSize() ES UN METODO NO ESTATICO DE LA CLASE BASE CCEGLViewProtocol. NO ENTIENDO COMO SE APUNTA . CCEGLViewProtocol es la clase base y tiene el método setDesignResolutionSize que lo puedo invocar por medio de un método estatico de la clase derivada CCEGLView.
Bueno espero q me tiren un salvavidas asi puedo entender mejor lo que esta sucediendo. Gracias Javier.
Tengo una clase llamémosla X , que hereda de la clase que la vamos a llamar Y, resulta que la clase X tiene un método estatico, y mi duda es la siguiente: por medio de ese método estatico pueden acceder a cualquiera de los métodos no estáticos de las dos clases e invocarlos. Lo pongo con código para que se entienda mejor, no entiendo como es esto posible. Como ese método estatico permite apuntar e invocar a cualquier método no estatico de las clases.
Código (cpp) [Seleccionar]
#ifndef __CC_EGLVIEW_ANDROID_H__
#define __CC_EGLVIEW_ANDROID_H__
#include "cocoa/CCGeometry.h"
#include "platform/CCEGLViewProtocol.h"
NS_CC_BEGIN
class CC_DLL CCEGLView : public CCEGLViewProtocol
{
public:
CCEGLView();
virtual ~CCEGLView();
bool isOpenGLReady();
// keep compatible
void end();
void swapBuffers();
void setIMEKeyboardState(bool bOpen);
// static function
/**
@brief get the shared main open gl window
*/
static CCEGLView* sharedOpenGLView(); METODO ESTATICO
};
NS_CC_END
#endif // end of __CC_EGLVIEW_ANDROID_H__
Y HACEN COSAS COMO ESTAS CON ESTE METODO ESTATICO
Código (cpp) [Seleccionar]
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionShowAll);
EN DONDE EL METODO setDesignResolutionSize() ES UN METODO NO ESTATICO DE LA CLASE BASE CCEGLViewProtocol. NO ENTIENDO COMO SE APUNTA . CCEGLViewProtocol es la clase base y tiene el método setDesignResolutionSize que lo puedo invocar por medio de un método estatico de la clase derivada CCEGLView.
Bueno espero q me tiren un salvavidas asi puedo entender mejor lo que esta sucediendo. Gracias Javier.