0
나는 :: 기본 클래스 형의 포인터의 벡터 성병을 가지고스토어 파생 된 개체는
vector<Base*> baseList;
을 그리고 벡터에 파생 클래스 유형을 밀어 :
Derived* derivedObject = new Derived();
baseList.push_back(derivedObject);
그러나 목록을 반복하고 파생 클래스에 의해 기본 클래스에서 재정의 된 함수를 호출하면 파생 클래스의 코드가 호출되지 않습니다. 올바른 방법으로 벡터를 사용하고 있습니까?
내 기본 클래스가 그 기능을 선언하기 전에 가상 키워드를 사용하고 파생 클래스와 기본 클래스를 파생 : 내가 잘못 여기서 뭘하는지
class Derived : public Base
어떤 생각?
편집 :
I 선언 한 함수를 호출하려면 다음
typedef vector<App*>::iterator AppIterator;
AppIterator begin() { return l_Apps.begin(); }
AppIterator end() { return l_Apps.end(); }
그리고 난과 같이 함수를 호출 :
for (AppIterator it = begin(); it != end(); ++it)
{
(*it)->Initialize();
}
문제는 여기에있을 수 있을까요?
Base
Derived
Base
Derived
Base
Derived
:
나에게 잘 보입니다. 어떻게 함수를 부르니? –
전화하려는 기능이'가상 '으로 표시되었는지 다시 확인하십시오. –
일부 코드보기 – taocp