2
C++의 상속에 약간의 문제가 있습니다. 알아낼 수 없습니다.C++에서 상속 된 클래스를 함수로 전달
그래서, 즉, 내가 STL과 목록에서 파생 된 클래스가 있다고 가정 :
class Class1: public list<T>{
virtual func1();
}
class Class2 : public Class1<w/e>{
func1();
}
함수에이를 통과 할 때 나는 데 문제가 있습니다. 이 중 하나의 인스턴스를 함수에 제대로 전달하여 두 유형 중 하나의 인스턴스가 전달 될 수있는 경우 적절한 가상 함수를 사용하도록하려면 어떻게해야합니까? 나는 상속 및 가상 기능을 잠시 수행하지 않았으므로 약간 녹슬 었습니다. (함수가 클래스의 멤버 함수가 아니라고 가정).
에서 함수 호출 기본 클래스라고 가정하고 런타임에 실제로 어떤 클래스인지 결정합니다. – Glem
정확히 두 클래스 모두 Class1 이상이므로 전달할 수 있으며 호출 할 가상 메서드를 런타임으로 결정합니다. –
항상 기본 클래스입니다. ** 클래스의 모든 인스턴스는 ** 그것이 파생 된 모든 클래스의 인스턴스입니다. 가상 함수의 목적은 코드가 기본 클래스의 인스턴스에서 함수를 호출하고 해당 함수의 올바른 버전을 호출하도록 허용하는 것입니다. –