I am getting an error compiling the following code.
Beverage is a private member of type pointer to BeerScore.
I create a new AleScore and assign it to Beverage (AleScore inherits from BeerScore).
I am getting an error calling Beverage.Read(); immediately after.
/home/curlious/assignment7/src/beveragecreator.cpp:54: error: request for member `Read' in `((BeverageCreator*)this)->BeverageCreator::Beverage', which is of non-class type `BeerScore*'
Code:#include "beveragecreator.h" #include <stdlib.h> # #include "beerscore.h" #include "alescore.h" #include "lagerscore.h" BeverageCreator::BeverageCreator() { } BeerScore * BeverageCreator::CreateBeverage(vector<string>& BeverageMessage) { vector<string> Beverages; Beverages.push_back("Ale"); Beverages.push_back("Lager"); Beverages.push_back("Malt Liquor"); Beverages.push_back("Wine Cooler"); int TypeIndex = 0; vector<string>::iterator TypeLookup; for (TypeLookup = Beverages.begin(); TypeLookup != Beverages.end(); TypeLookup++) { if (BeverageMessage[0] == *TypeLookup) break; TypeIndex++; } BeverageMessage.erase(BeverageMessage.begin()); switch (TypeIndex) { case 0: Beverage = new AleScore(); Beverage.Read(BeverageMessage); //problem here return Beverage; case 1: Beverage = new LagerScore(BeverageMessage[2],atoi(BeverageMessage[3].chars()),atoi(BeverageMessage[4].chars()),atoi(BeverageMessage[5].chars())); return Beverage; case 2: case 3: default: break; } }



LinkBack URL
About LinkBacks


