Que quiere decir esto?
Publicado por Nelek (816 intervenciones) el 27/07/2006 10:34:59
class CModalShapePropSheet;
class CShapePreviewWnd : public CWnd
{
friend class CModalShapePropSheet;
CShapePreviewWnd();
//{{AFX_MSG(CShapePreviewWnd)
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
Esto me lo he encontrado en un ejemplo del MSDN. Lo que yo entiendo es...
Esta clase CShapePreviewWnd esta derivada de CWnd publicamente, hace el friend a la otra clase (que en el programa ejecutable, esta clase es contenida por la otra) para que pueda acceder a sus variables miembro y metodos protegidos y demás, que si el friend no podria hacerlo. El constructor, el mapa de mensajes esta claro.
Pero pq pone arriba la otra class? es para poder hacer el friend, no? Es decir, si no fuera necesario acceder a los metodos privados... seria como hacer un #include?
O me estoy haciendo la picha un lio? Alguien me lo explica?
class CShapePreviewWnd : public CWnd
{
friend class CModalShapePropSheet;
CShapePreviewWnd();
//{{AFX_MSG(CShapePreviewWnd)
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
Esto me lo he encontrado en un ejemplo del MSDN. Lo que yo entiendo es...
Esta clase CShapePreviewWnd esta derivada de CWnd publicamente, hace el friend a la otra clase (que en el programa ejecutable, esta clase es contenida por la otra) para que pueda acceder a sus variables miembro y metodos protegidos y demás, que si el friend no podria hacerlo. El constructor, el mapa de mensajes esta claro.
Pero pq pone arriba la otra class? es para poder hacer el friend, no? Es decir, si no fuera necesario acceder a los metodos privados... seria como hacer un #include?
O me estoy haciendo la picha un lio? Alguien me lo explica?
Valora esta pregunta


0