2014-05-22 7 views
-3

나는 여전히 기본 클래스에 대한 포인터 벡터로부터 어떻게 파생 클래스의 요소 값을 가져 왔는지 알지 못합니다.다양한 파생 클래스의 벡터

#include <iostream> 
#include <cstdlib> 
#include <vector> 
#include <iterator> 

using namespace std; 

class bazowa; 

class graf{ 
public: 
    vector<bazowa*> lista; 
}; 

class bazowa { 
public: 
    int a; 
}; 

class pochodna1 : public bazowa { 
public: 
    int b; 
}; 

class pochodna2 : public bazowa { 
public: 
    int b; 
}; 

int main() { 
    vector<bazowa*>::iterator j; 
    graf moj_graf; 
    moj_graf.lista.push_back(new pochodna1); 
    moj_graf.lista.push_back(new pochodna2); 
    moj_graf.lista.push_back(new pochodna2); 

    for (j = moj_graf.lista.begin(); j != moj_graf.lista.end(); j++){ 
      // how to show a value of element b ? 
    } 
    return 0; 
} 

그래서 주전원에 마지막으로 요소 b의 값을 표시하는 방법이 궁금합니다.

답변

0

존중하여 반복자 j

for (j = moj_graf.lista.begin(); j != moj_graf.lista.end(); j++){ 
    pochodna1* pPochondna = *j; 
} 
+0

나는 벡터 pochodna1 및 pochodna2 요소를 가지고있다. 문제가 아닌가? – user3666350