이게 문제인데... 내 얇팍한 지식으로는 도저히 모르겠어
좀 도와줘 ㅠ 정답 알려주는 형한테 스벅 커피 쏠게!
C++은
m(T=PKc)
m(int)
m(T=l)
이렇게 결과가 나오고
C#은
m<T>(T=System.String)
m<T>(T=System.Int32)
m<T>(T=System.UInt32)
이렇게 결과가 나오고
Java는
m(T)
m(T)
m(T)
이렇게 결과가 나옴
1번 문제 답은 풀었어!
이게 문제인데... 내 얇팍한 지식으로는 도저히 모르겠어
좀 도와줘 ㅠ 정답 알려주는 형한테 스벅 커피 쏠게!
C++은
m(T=PKc)
m(int)
m(T=l)
이렇게 결과가 나오고
C#은
m<T>(T=System.String)
m<T>(T=System.Int32)
m<T>(T=System.UInt32)
이렇게 결과가 나오고
Java는
m(T)
m(T)
m(T)
이렇게 결과가 나옴
1번 문제 답은 풀었어!
chatgpt 바보야
타입명 도출하는건가
자바는 c#에 비해 컴파일타임에 제네릭타입 알 방법어려움 인스턴스 객체를 getClass로 호출하고 getName같은거 호출해라
getName(getClass()) 로 타입 알아내라는거야?
문제 진짜 개 쓰레기같네
2번은 한마디로 얘기하면 c++이 템플릿 인스턴스화 할 때 (컴파일 타임에) 인자 타입이랑 더 일치하는(가까운) 함수 선호하도록 구현되어있어서 그럼 C#도 구조상 가능은 한데 그냥 언어 특성상 구현이 그렇게 안된거임 명시적으로 캐스팅 안하면 항상 오버로드 대신 제네릭 선택하는게 더 직관적이라고 언어 설계자가 생각했나보지
3번은 다른 언어는 비교적 덜 익숙하기도 하고 귀찮아서 c++만 보여주면 template T getMax(T a, T b, T c) { T max = (a > b) ? a : b; max = (max > c) ? max : c; return max; }
으잉 고맙다는 댓글과 함께 오픈챗 링크 달았는데 사라졌네... 오픈챗 링크 어떻게 형한테 줄 수 있어?
어일단 include int main(void)부터 입력해야지