int add(int a,int b)
{
cout<<"1"<<endl;
return a+b;
}
int add(int a,char c)
{
cout<<"2"<<endl;
return a+c;
}
int main()
{
cout<<add(10,20)<<endl; //1
cout<<add(10,'a')<<endl; //2
cout<<add('a','b')<<endl; //3
}
위의 코드에서 첫 번째 함수는 function add (int, int)를 호출하고 두 번째 함수는 function add (int, char)를 호출합니다. 세 번째 함수 호출은 오류가 발생하지만 add (int, char) 함수를 호출합니다. 이유를 설명 할 수 있습니다.함수 오버로드가 작동하는 방식
C++은 약하게 입력됩니다. 컴파일러는 오류없이 코드가 작동하도록 최선을 다할 것이므로이 경우 char 입력을 int로 자동 캐스팅합니다. – Kapura
@ 카푸라 약자가 의미하는 것이 아닙니다. – asawyer