| ÀÌÀü ÁÖÁ¦ º¸±â :: ´ÙÀ½ ÁÖÁ¦ º¸±â |
| ±Û¾´ÀÌ |
¸Þ½ÃÁö |
briscape
°¡ÀÔ: 2004³â 12¿ù 23ÀÏ ¿Ã¸° ±Û: 54 ¼Ò¼Ó: http://bl.na.mu
|
Ŭ·¡½º ÇÔ¼öÆ÷ÀÎÅÍ¿¡ ´ëÇÑ Áú¹®ÀÔ´Ï´Ù. |
¿Ã·ÁÁü: 2007-06-24 00:49
|
|
¾È³çÇϼ¼¿ä. GUI Ŭ·¡½º¸¦ ¸¸µé°íÀִµ¥¿ä,
´ÙÀ̾ó·Î±×ÀÇ Listener ÇÔ¼öÆ÷ÀÎÅ͸¦ ¸¸µé·Á°í ÇÕ´Ï´Ù.
ListenerÀº ´ÙÀ̾ó·Î±× ¹× ÇÏÀ§ ÄÁÆ®·ÑµéÀÌ Å¬¸¯µÆÀ»¶§ ½ÇÇàÇÒ ÇÔ¼öÀÔ´Ï´Ù.
¿¹¸¦µé¾î
| ÄÚµå: |
class CGUIDialog
{
public:
void (CListener::*pFunc)(int id, int msg, int param1, int param2);
};
class CMainFrame : public CListener
{
public:
void MyListenFunc(int id, int msg, int param1, int param2);
};
À§ ó·³ µÇ¾îÀÖÀ»¶§
CGUIDialog dialog;
CMainFrame mainFrm;
dialog.pFunc = &CMainFrame::MyListenFunc;
|
ÀÌ·±½ÄÀ¸·Î ÇÏ·Á°í Çϴµ¥¿ä
ÇÔ¼ö¸¦ ³Ö´Â °÷¿¡¼ ½ÅÅýº ¿¡·¯°¡ ³³´Ï´Ù.
ÀÎÅͳÝÀ» ¾Æ¹«¸® µÚÁ®µµ À§ÀÇ »ç¿ë¹ýÀº ¾È³ª¿ÍÀÖ½À´Ï´Ù. ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? _________________ - To be a better man...
briscape °¡ 2007-06-24 04:28¿¡ ¼öÁ¤ÇÔ, ÃÑ 1 ¹ø ¼öÁ¤µÊ |
|
| À§·Î |
|
 |
seaeast2

°¡ÀÔ: 2004³â 8¿ù 31ÀÏ ¿Ã¸° ±Û: 59
|
±×°Å ¾ÈµÇ´Â°É·Î ¾Ë°í Àִµ¥... |
¿Ã·ÁÁü: 2007-06-24 01:41
|
|
±×°Å ¾µ·Á¸é staticÀ¸·Î ¸¸µé¾î¼ ½á¾ß ÇÕ´Ï´Ù.
±×³É ³»ºÎ ¸Þ¼Òµå´Â ¾ÈµÅ¿ä.^^ _________________ ÁÁÀº »ç¶÷ÀÌ µÇÀÚ. |
|
| À§·Î |
|
 |
ºñȸ¿ø ¼Õ´Ô
|
|
¿Ã·ÁÁü: 2007-06-24 01:45
|
|
| À ºÐ ¸»¾¸Ã³·³ Á¤Àû ÇÔ¼ö³ª functor, Äݹé Ŭ·¡½º¸¦ »ç¿ëÇϽô ¹æ¹ýÀÌ ÁÁÀ» µí ÇÕ´Ï´Ù. |
|
| À§·Î |
|
 |
Testors

°¡ÀÔ: 2003³â 7¿ù 26ÀÏ ¿Ã¸° ±Û: 557 ¼Ò¼Ó: (ÁÖ)nFlavor
Ÿ »çÀÌÆ® ID(?): 48179650
|
Re: ±×°Å ¾ÈµÇ´Â°É·Î ¾Ë°í Àִµ¥... |
¿Ã·ÁÁü: 2007-06-24 03:02
|
|
| seaeast2 ¾¸: |
±×°Å ¾µ·Á¸é staticÀ¸·Î ¸¸µé¾î¼ ½á¾ß ÇÕ´Ï´Ù.
±×³É ³»ºÎ ¸Þ¼Òµå´Â ¾ÈµÅ¿ä.^^ |
¾ÈµÇ´Â°Ç ¾Æ´Ï°í.. ¹®¹ýÀÌ ±«ÆÅÇØ¼ ±×·¸Áö µÇ±ä µË´Ï´Ù.
´Ü, Á¤Àû ¸â¹ö ÇÔ¼ö°¡ ¾Æ´Ï´Ù º¸´Ï È£ÃâÇÒ¶§ this ¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß °ÚÁÒ..
| ÄÚµå: |
#include
struct A
{
void func1( int n ) { printf( "%d\n", n ); }
void func2( int n ) { printf( "%d\n", n*n ); }
};
int main(int argc, char* argv[])
{
A a;
void (A::*fp)( int );
fp = &A::func1;
(a.*fp)( 2 );
fp = &A::func2;
(&a->*fp)( 2 ); // ÀÌ·±½Äµµ °¡´ÉÇÕ´Ï´Ù..
return 0;
} |
_________________ ÇøÓ/¸ðµ¨·¯/¾Ö´Ï¸ÞÀÌÅÍ ±¸ÇØ¿° **Çö¿ª/º¸Ã濪 º´Æ¯°¡´É** / http://testors.net/ |
|
| À§·Î |
|
 |
briscape
°¡ÀÔ: 2004³â 12¿ù 23ÀÏ ¿Ã¸° ±Û: 54 ¼Ò¼Ó: http://bl.na.mu
|
³× ±× ¹æ¹ýÀº ¾Ë°íÀÖ¾ú´Âµ¥¿ä. |
¿Ã·ÁÁü: 2007-06-24 03:18
|
|
¸ÕÀú ´äº¯ °¨»çÇÕ´Ï´Ù.
±×·±µ¥ Á¦ Áú¹®¿¡¼ º¸½Ã´Ù½ÃÇÇ Á¦°¡ ÇÏ·Á°í ÇÏ´Â °ÍÀº
ÇØ´ç Scope Ŭ·¡½ºÀÇ 'ÆÄ»ý' Ŭ·¡½ºÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ·Á°í ÇÕ´Ï´Ù.
±Ùµ¥ ½ÅÅýº¿¡·¯¶§¹®¿¡ ¾ÈµÇ´õ¶ó±¸¿ä..
| Àοë: |
error C2440: '=' : cannot convert from 'void (__thiscall CMainFrame::* )(int,int,int,int)' to 'void (__thiscall CListener::* )(int,int,int,int)'
1> Cast from base to derived requires dynamic_cast or static_cast |
ÀÌ·± ¿¡·¯ÁÒ.
Á¦°¡ ÇÏ·Á´Â ¹æ¹ýÀº ¹®¹ýÀûÀ¸·Î ºÒ°¡´É ÇѰǰ¡¿ä?
Áú¹®À» Á¤¸®ÇϰڽÀ´Ï´Ù.
| ÄÚµå: |
void (CParent::*pFunc)(void);
À§¿Í °°Àº ÇÔ¼öÆ÷ÀÎÅͰ¡ ÀÖ½À´Ï´Ù. Ŭ·¡½º ½ºÄÚÇÁ ÇÔ¼öÆ÷ÀÎÅÍÁÒ.
±×·±µ¥ CParent¸¦ »ó¼Ó¹ÞÀº CSon À̶ó´Â Ŭ·¡½º°¡ ÀÖ´Ù¸é
CSonÀÇ ¸â¹öÇÔ¼ö¸¦ Àú ÇÔ¼öÆ÷ÀÎÅÍ¿¡ ³ÖÀ» ¼ö ÀÖ³ª¿ä?
pFunc = &CSon::MemberFunc;
ÀÌ·±½ÄÀ¸·Î¿ä.. |
_________________ - To be a better man... |
|
| À§·Î |
|
 |
Testors

°¡ÀÔ: 2003³â 7¿ù 26ÀÏ ¿Ã¸° ±Û: 557 ¼Ò¼Ó: (ÁÖ)nFlavor
Ÿ »çÀÌÆ® ID(?): 48179650
|
Re: ³× ±× ¹æ¹ýÀº ¾Ë°íÀÖ¾ú´Âµ¥¿ä. |
¿Ã·ÁÁü: 2007-06-24 11:26
|
|
| briscape ¾¸: |
¸ÕÀú ´äº¯ °¨»çÇÕ´Ï´Ù.
±×·±µ¥ Á¦ Áú¹®¿¡¼ º¸½Ã´Ù½ÃÇÇ Á¦°¡ ÇÏ·Á°í ÇÏ´Â °ÍÀº
ÇØ´ç Scope Ŭ·¡½ºÀÇ 'ÆÄ»ý' Ŭ·¡½ºÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ·Á°í ÇÕ´Ï´Ù.
±Ùµ¥ ½ÅÅýº¿¡·¯¶§¹®¿¡ ¾ÈµÇ´õ¶ó±¸¿ä..
| Àοë: |
error C2440: '=' : cannot convert from 'void (__thiscall CMainFrame::* )(int,int,int,int)' to 'void (__thiscall CListener::* )(int,int,int,int)'
1> Cast from base to derived requires dynamic_cast or static_cast |
ÀÌ·± ¿¡·¯ÁÒ.
Á¦°¡ ÇÏ·Á´Â ¹æ¹ýÀº ¹®¹ýÀûÀ¸·Î ºÒ°¡´É ÇѰǰ¡¿ä?
Áú¹®À» Á¤¸®ÇϰڽÀ´Ï´Ù.
| ÄÚµå: |
void (CParent::*pFunc)(void);
À§¿Í °°Àº ÇÔ¼öÆ÷ÀÎÅͰ¡ ÀÖ½À´Ï´Ù. Ŭ·¡½º ½ºÄÚÇÁ ÇÔ¼öÆ÷ÀÎÅÍÁÒ.
±×·±µ¥ CParent¸¦ »ó¼Ó¹ÞÀº CSon À̶ó´Â Ŭ·¡½º°¡ ÀÖ´Ù¸é
CSonÀÇ ¸â¹öÇÔ¼ö¸¦ Àú ÇÔ¼öÆ÷ÀÎÅÍ¿¡ ³ÖÀ» ¼ö ÀÖ³ª¿ä?
pFunc = &CSon::MemberFunc;
ÀÌ·±½ÄÀ¸·Î¿ä.. |
|
¿¡·¯ ¸Þ¼¼Áö¿¡ ÀÌ¹Ì ÇØ´äÀÌ Á¦½Ã µÇ¾î Àֳ׿ä..
dynamic_cast ³ª static_cast ¸¦ »ç¿ëÇϼ¼¿ä.
| ÄÚµå: |
#include
struct A
{
virtual void func1( int n ) { printf( "%d\n", n ); }
};
struct B : public A
{
virtual void func1( int n ) { printf( "%d\n", n*n ); }
};
int main(int argc, char* argv[])
{
B a;
void (A::*fp)( int );
fp = static_cast( &B::func1 );
(a.*fp)( 2 );
return 0;
}
|
_________________ ÇøÓ/¸ðµ¨·¯/¾Ö´Ï¸ÞÀÌÅÍ ±¸ÇØ¿° **Çö¿ª/º¸Ã濪 º´Æ¯°¡´É** / http://testors.net/ |
|
| À§·Î |
|
 |
ºñȸ¿ø ¼Õ´Ô
|
|
| À§·Î |
|
 |
briscape
°¡ÀÔ: 2004³â 12¿ù 23ÀÏ ¿Ã¸° ±Û: 54 ¼Ò¼Ó: http://bl.na.mu
|
Á¤¸» °¨»çÇÕ´Ï´Ù.^^ |
¿Ã·ÁÁü: 2007-06-24 18:09
|
|
¿©·¯ºÐµé Áö½ÄÀÇ ±íÀÌ¿¡ Ç×»ó ³î¶ó¿òÀ» ±ÝÄ¡ ¸øÇϳ׿ä..
Á¤¸» °¨»çµå¸³´Ï´Ù. :) _________________ - To be a better man... |
|
| À§·Î |
|
 |
ºñȸ¿ø ¼Õ´Ô
|
|
¿Ã·ÁÁü: 2007-06-24 22:45
|
|
¿©´ãÀÔ´Ï´Ù¸¸ ÇÔ¼ö¸¦ Ŭ·¡½º·Î ¸¸µé¾î¼(Funtor) ³Ñ°ÜÁÖ´Â°Ô Á»´õ C++½º·´Áö ¾ÊÀ»±î ½Í½À´Ï´Ù..
·êÀ» ¾î°Ü(?)°¡¸é¼ ¸¸µé±âº¸´Ù´Â ÀÚ¿¬½º·¯¿î ÇüŰ¡ ´õ ÁÁÀ»°Ì´Ï´Ù.. |
|
| À§·Î |
|
 |
ºñȸ¿ø ¼Õ´Ô
|
¸â¹ö º¯¼ö¿¡ Á¢±ÙÇÒ Çʿ䰡 ÀÖÀ»¶©.. |
¿Ã·ÁÁü: 2007-06-25 02:18
|
|
| ºñȸ¿ø ¾¸: |
¿©´ãÀÔ´Ï´Ù¸¸ ÇÔ¼ö¸¦ Ŭ·¡½º·Î ¸¸µé¾î¼(Funtor) ³Ñ°ÜÁÖ´Â°Ô Á»´õ C++½º·´Áö ¾ÊÀ»±î ½Í½À´Ï´Ù..
·êÀ» ¾î°Ü(?)°¡¸é¼ ¸¸µé±âº¸´Ù´Â ÀÚ¿¬½º·¯¿î ÇüŰ¡ ´õ ÁÁÀ»°Ì´Ï´Ù.. |
¸â¹öº¯¼ö¿¡ Á¢±ÙÇÒ Çʿ䰡 ÀÖÀ» ¶© Àú ÇüŰ¡ ´õ ³´Áö ¾ÊÀ»±î¿ä.
Functor³ª static ¸Þ¼ÒµåÀÇ ºÒÆíÇÑÁ¡ÀÌ ¹Ù·Î ÀνºÅϽº¸¦ µû·Î ¹Þ¾Æ¾ßµÈ´Ù´Â Á¡ÀÌÁÒ. |
|
| À§·Î |
|
 |
seaeast2

°¡ÀÔ: 2004³â 8¿ù 31ÀÏ ¿Ã¸° ±Û: 59
|
¿Í¿ì!! |
¿Ã·ÁÁü: 2007-06-25 02:23
|
|
¿ª½Ã ´ë´ÜÇϽó׿ä..
Testors ´Ô ÁøÂ¥ ¹®¹ý Âü ±«ÆÅÇÕ´Ï´Ù. ÇÏÇÏ
Àúµµ Àü¿¡ Àú°Ô ÇÊ¿äÇÑÀûÀÌ ÀÖ¾ú´Âµ¥ µµÀúÈ÷ ¹æ¹ýÀÌ »ý°¢¾È³ª¼
staticÀ¸·Î ´ëÃæ ¾î¶»°Ô ó¸®Çß´ø ±â¾ïÀÌ Àֳ׿ä..
±×¶© ÇÔ¼öÀÚ¶ó´ø°¡ ±×·±°Å ¸ð¸£´ø »óȲÀ̾î¼...
ÇÏ¿©°£ GPG¿¡¼ ¸¹ÀÌ ¹è¿ó´Ï´Ù. Áú¹®ÀÚ´Â ¾Æ´ÏÁö¸¸ °¨»ç~ _________________ ÁÁÀº »ç¶÷ÀÌ µÇÀÚ. |
|
| À§·Î |
|
 |
ºñȸ¿ø ¼Õ´Ô
|
Re: ³× ±× ¹æ¹ýÀº ¾Ë°íÀÖ¾ú´Âµ¥¿ä. |
¿Ã·ÁÁü: 2007-06-25 10:25
|
|
| Testors ¾¸: |
¿¡·¯ ¸Þ¼¼Áö¿¡ ÀÌ¹Ì ÇØ´äÀÌ Á¦½Ã µÇ¾î Àֳ׿ä..
dynamic_cast ³ª static_cast ¸¦ »ç¿ëÇϼ¼¿ä.
| ÄÚµå: |
#include
struct A
{
virtual void func1( int n ) { printf( "%d\n", n ); }
};
struct B : public A
{
virtual void func1( int n ) { printf( "%d\n", n*n ); }
};
int main(int argc, char* argv[])
{
B a;
void (A::*fp)( int );
fp = static_cast( &B::func1 );
(a.*fp)( 2 );
return 0;
}
|
|
°¡»óÇÔ¼ö¶ó´Â Á¡À» ÀÌ¿ëÇϸé cast ¾ÈÇØµµ µË´Ï´Ù.
| ÄÚµå: |
fp = &A::func1;
(a.*fp)( 2 );
|
|
|
| À§·Î |
|
 |
ºñȸ¿ø ¼Õ´Ô
|
Re: ÇÔ¼öÆ÷ÀÎÅ͵µ... |
¿Ã·ÁÁü: 2007-06-26 15:17
|
|
Á¤¸» »ç¶û½º·± ¸µÅ©±º¿ä. (Áú¹®ÀÚ´Â ¾Æ´ÏÁö¸¸)¹®¼ Àß ºÃ½À´Ï´Ù. ¤µ¤µ |
|
| À§·Î |
|
 |
|