다음 작업에 약간의 문제가 있습니다.다른 오브젝트로 채워진 벡터
처음에는 하나의 유형의 개체 (자전거)가있는 벡터가있었습니다.
나는이 같은 브랜드와 그 자전거의 모델을 인쇄하려면이 클래스로 넣어 객체를 사용하고 기능을 사용 할 수 :
for (Bike* b1 : vecBikes) {
b1->printBrandModel();
}
내 클래스의 이름은 자전거입니다.
이 클래스에서 나는 Mountain Bikes와 E_Bikes를위한 MTB 인 두 개의 새로운 클래스를 도출했습니다. 내가 파일을 다시 읽고이를 저장하거나 MTB 또는 E_Bike이처럼 내 벡터에 객체로 :
while (inputFile >> brand >> model >> modelyear >> price >> type) {
if (type == "MTB") {
vecBikes.push_back(new MTB(brand, model, modelyear, price));
}
else {
inputFile >> energy;
vecBikes.push_back(new E_Bike(brand, model, modelyear, price, energy));
}
getline(inputFile, buffer);
}
가 지금은 꽤 동일해야합니다. 하지만 이번에는이 벡터에서 eihter MTB 또는 E_Bikes를 인쇄하고 싶습니다.
어쩌면 dynamic_cast가 가야할 길입니다.하지만이 주제에 대한 완전한 초보자이며 모든 예제 도서 및 웹 사이트는 어떻게 든 저를 도울 수 없습니다. 나는 당신이 나를 도울 수 있기를 바랍니다이 ;-)
먼저 코드의 형식을 올바르게 지정하십시오. –
'printBrandModel'이'Bike'에서'virtual'으로 선언되고 파생 클래스에서'override'로 선언되는 한 똑같은'for' 루프를 수행 할 수 있습니다 – CoryKramer
더 많은 코드를 보여 주면, 클래스 경로 선언을 보지 않고 올바른 경로에 있는지 확인하십시오. 읽기 : [ask] and this : [mcve] –