¿¹Á¦

class MyClass {
public:
MyClass(int param, int param2=0);
operator double() const;
bool operator==(const MyClass& left, const MyClass& right);
private:
double num;
};

int main(int argc, char* argv[]){
MyClass a;
int b[] = {0,1,2};
for(int i=0; i<3; i++)
if( a == b[i] ){
//b[i] implicitly converted to MyClass
}
}
}

¼Ö·ç¼Ç
´ÜÀÏ Àμö »ý¼ºÀÚ(º¹»ç »ý¼ºÀÚ°¡ ¾Æ´Ñ) ¶Ç´Â º¯È¯À» À§ÇØ ÄÄÆÄÀÏ·¯¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â »ý¼ºÀÚÀÇ °æ¿ì, »ý¼ºÀÚ¸¦ ¸í½Ã·Î ¼±¾ðÇϽʽÿÀ. ÄÄÆÄÀÏ·¯¿¡¼­ ¿¹±âÄ¡ ¾Ê°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¾Ï½ÃÀû À¯Çü º¯È¯À» »ç¿ëÇÏ´Â ´ë½Å¿¡ »ç¿ëÀÚ Á¤ÀÇ ¸Þ¼Òµå¸¦ ¸í½ÃÀûÀ¸·Î »ç¿ëÇϽʽÿÀ.

class MyClass {
public:
explicit MyClass(int param, int param2=0);
double toDouble() const;
bool operator==(const MyClass& left, const MyClass& right);
private:
double num;

};

int main(int argc, char* argv[]){
MyClass a;
int b[] = {0,1,2};
for(int i=0; i<3; i++)
if( a.toDouble() == b[i] ){
//a explicitly converted to double
}
}
}