public virtual void eat(Food f, Person p) public virtual void eat(Food f, Cat c) 로 두개로 오버로딩 되있는것을 하나의 함수로 합치고싶은데 템플릿으로 하나로 만들고 대신 두번재 인자에 Person이나 Cat만 들어갈수있도록 제한시키기 이런건 키워드가 머임?
굳이 템플릿 말고 내부에서 동작에 필요한 함수나 속성들을 묶어서 인터페이스로 빼내고 Cat과 Person이 해당 인터페이스를 구현하게 만듦
IEat 인터페이스 만들고, eat이란 함수 만든다음 각 Person, Cat 객체에서 인터페이스를 구현하기 - dc App
굳이 본문의 내용을 원한다면 type union 쪽을 살펴보면 됨 - dc App
constraint in concept
C++이면 템플릿 사용하고 타입 체크해서 해당되지 않으면 리턴시켜버리면 될거임
상속 다형성 - dc App