//abstract product
class AbstractProduct
{
public:
virtual void diplay(void) = 0;
};
//concrete product
class Histogram : public AbstractProduct
{
public:
Histogram()
{
cout << "default construct a Histogram!" << endl;
}
void display(void)
{
cout << "Display Histogram!" << endl;
}
};
//factury class
class Factury
{
public:
static AbstractProduct* getProduct(string type)
{
AbstractProduct* absP;
if(type=="Histogram")
{
Histogram his;// error, Variable type "Histogram" is an abstract class
}
return absP;
}
};
I have already implement the pure virtual function, but it still said my derived class is an abstract class. I do not know why.