ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
¿ø¹® : http://www.vmlinux.org/jakov/community.borland.com/15837.html ¼Ò°³
¾Æ¸¶µµ ¿©·¯ºÐÀº ÇÔ¼öÆ÷ÀÎÅ͸¦ »ç¿ëÇØºÃÀ» °ÍÀÌ´Ù. C¿¡¼ Á¦°øÇÏ´Â qsort(3)¿Í °°Àº ÇÔ¼öµµ ÇÔ¼öÆ÷ÀÎÅ͸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½Àº qsort(3)À» ÀÌ¿ëÇØ¼ Á¤·ÄÇÏ´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. #include <unistd.h> #include <stdio.h> #include <stdlib.h> int compare(const int *one, const int *two) { if (*one > *two) return -1; else return 1; } int a[3] = { 50, 10, 20 }; int main() { qsort(a, 3, sizeof(a[0]), compare); print("%d\n", a[0]); return 0; }qsort ÇÔ¼ö´Â ÀÎÀÚ·Î, ºñ±³¿¡ »ç¿ëÇÒ ÇÔ¼öÀÇ Æ÷ÀÎÅ͸¦ ¹Þ°í ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ¸¸¾à ÇÔ¼öÆ÷ÀÎÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é, ºñ±³¿¬»êÀÇ Á¾·ùÀÇ °¹¼ö¸¸Å »õ·Î¿î qsortÇÔ¼ö¸¦ ¸¸µé¾î¾ß µÉ °ÍÀÌ´Ù.
À§ ÄÚµå´Â ÀϹÝÀûÀ¸·Î Àß ÄÄÆÄÀÏ µÇÁö¸¸, ÄÄÆÄÀÏ·¯ÀÇ Æ¯¼º¿¡ µû¶ó¼ °æ°í¸¦ ¹ß»ýÇϰųª ÄÄÆÄÀÏÀÌ ¾ÈµÇ´Â ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. C ÄÄÆÄÀÏ·¯¿¡¼ ÄÄÆÄÀÏÀ» ÇÑ´Ù¸é °æ°í¸¦ ¹ß»ýÇÒ °ÍÀ̰í, C++ ÄÄÆÄÀÏ·¯¿¡¼ ÄÄÆÄÀÏ ÇÑ´Ù¸é ¿¡·¯°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù. ÀÌ´Â ÀÌµé µÎ°³ÀÇ ¾ð¾î°¡ °Å¸ÀÔ¾ð¾îÀ̱⠶§¹®ÀÌ´Ù. C++¿¡¼ ¿¡·¯°¡ ¹ß»ýÇÏ´Â ÀÌÀ¯´Â ÀϹÝÀûÀ¸·Î C++ÀÌ ´õ¿í °ÇÏ°Ô Å¸ÀÔÀ» °Ë»çÇϱ⠶§¹®ÀÌ´Ù.
qsort ÇÔ¼ö´Â stdlib.h¿¡ ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÇ¾î ÀÖ´Ù. void qsort(void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));
±×·¯¹Ç·Î ŸÀÔÀ» ¸íÈ®È÷ ÇÏ´Â °ÍÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ÀÌÁ¦ C ÄÄÆÄÀÏ·¯°Ç C++ ÄÄÆÄÀÏ·¯°Ç °£¿¡ °æ°í¸Þ½ÃÁö Çϳª ¾øÀÌ ±ò²ûÇÏ°Ô ÄÄÆÄÀÏ µÉ °ÍÀÌ´Ù. qsort(a, 3, sizeof(a[0]), (int (*)(const void *, const void *))compare); Ŭ·¡½º ¿¡¼ÀÇ ÇÔ¼ö Æ÷ÀÎÅÍ »ç¿ë
´ÙÀ½Àº C ½ºÅ¸ÀÏÀÇ ÇÔ¼öÆ÷ÀÎÅÍ´Ù. #include <iostream> using namespace std; void apple(void) { cout << "apple" << endl; }; void berry(void) { cout << "berry" << endl; } int main() { void (*fptr)(void); fptr = apple; fptr(); fptr = berry; fptr(); }
À§ÀÇ Äڵ带 C++ ½ºÅ¸ÀÏ·Î ¹Ù²Ù¾î º¸¾Ò´Ù. ÇÔ¼öÆ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ¼ ¸â¹öº¯¼ö¿¡ Á¢±ÙÇÔÀ» ¾Ë ¼ö ÀÖ´Ù. #include <iostream>
using namespace std;
class fruit
{
public:
void apple()
{
cout << "apple" << endl;
}
void berry()
{
cout << "berry" << endl;
}
};
int main()
{
fruit x, *y;
void (fruit::*f)(void);
y = new fruit;
f = &fruit::apple;
(x.*f)();
f = &fruit::berry;
(y->*f)();
delete y;
}
C++¿¡¼ÀÇ ¸â¹öÆ÷ÀÎÅ͸¦ À§ÇÑ ¿¬»êÀÚ¸¦ µû·Î Á¦°øÇÏ´Ù. '.*'À» »ç¿ëÇØ¼ ¸â¹öÇÔ¼ö¸¦ Æ÷ÀÎÆÃÇÒ ¼ö ÀÖ´Ù. È£ÃâÀº '->*'¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù.
ÀÌÁ¦ qsort() ÇÔ¼ö¿¡ Á¤·Ä¿¬»êÀ» À§Çؼ ¸â¹öÇÔ¼ö Æ÷ÀÎÅ͸¦ ³Ñ°Üº¸µµ·Ï ÇÏÀÚ. #include <stdlib.h>
#include <iostream>
using namespace std;
class fruit
{
public:
fruit() { f = &fruit::compare; }
int (fruit::*f)(const int*, const int*);
int compare(const int *one, const int *two)
{
return ( (*one == *two) ? 0 : *one > *two );
}
} apple;
int funcptr(const void* one , const void* two)
{
return ( (apple.*apple.f)( (const int *)one, (const int *)two ) );
};
int a[3] = { 3, 2, 1 };
int main()
{
int i;
cout << "before ";
for( i=0; i < 3; i++ ) cout << a[i] << " ";
cout << endl;
qsort(a, 3, sizeof(a[0]), funcptr );
cout << "after ";
for( i=0; i < 3; i++ ) cout << a[i] << " ";
cout << endl;
return 0;
}
friend¿Í static ¿¡¼ÀÇ ÇÔ¼öÆ÷ÀÎÅÍ »ç¿ë
ÀÌÁ¦ friend¿Í static ¸â¹öÇÔ¼ö¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ. ´ÙÀ½Àº friend ÇÔ¼ö¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀÌ´Ù. #include <iostream>
using namespace std;
class fruit
{
public:
void apple()
{
cout << "apple" << endl;
}
void berry()
{
cout << "berry" << endl;
}
friend void cherry(void (fruit::*func)(), fruit x)
{
(x.*func)();
}
};
int main()
{
fruit x;
void (fruit::*f)(void);
f = &fruit::apple;
(x.*f)();
f = &fruit::berry;
cherry(f,x);
}
´ÙÀ½Àº static ¸â¹öÇÔ¼ö¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀÌ´Ù. #include <iostream>
using namespace std;
class fruit
{
public :
void apple()
{
cout << "apple" << endl;
}
void berry()
{
cout << "berry" << endl;
}
static void cherry(void(fruit::*func)(), fruit x)
{
(x.*func)();
}
};
int main()
{
fruit x;
void (fruit::*f)(void);
f= &fruit::apple;
(x.*f)();
f = &fruit::berry;
x.cherry(f,x);
return 0;
}
Ŭ·¡½º¿¡ ÀÓº£µðµåµÈ ÇÔ¼öÆ÷ÀÎÅ͸¦ È£ÃâÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¾à°£´õ º¹ÀâÇÕ´Ï´Ù.
#include <iostream>
using namespace std;
class fruit
{
public:
void (fruit::*ff)(void);
void apple()
{
cout << "apple" << endl;
}
void berry()
{
cout << "berry" << endl;
}
};
int main()
{
fruit x;
void (fruit::*f)(void);
f = &fruit::apple;
x.ff = &fruit::berry;
(x.*f)();
(x.*x.ff)();
return 0;
}
ÅÛÇø´¿¡¼ÀÇ ÇÔ¼ö Æ÷ÀÎÅÍ »ç¿ë
¸¶Áö¸·À¸·Î ÅÛÇø´¿¡¼ ÇÔ¼öÆ÷ÀÎÅ͸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
#include <iostream>
using namespace std;
template<class T>
class alpha
{
T data;
public :
alpha(T x) {data = x;}
T show() {cout << data << endl;}
};
int main()
{
int (alpha<int>::*ifunc)();
float (alpha<float>::*ffunc)();
alpha<int> a(123);
alpha<float> b(456.78);
ifunc = a<int>::show;
ffunc = a<float>::show;
(a.*ifunc)();
(b.*ffunc)();
}
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|