[C con Clase] Error ejecucion - Patron Factory Method

jesse jessesazo en yahoo.com
Lun Mayo 25 15:52:46 CEST 2020


Buenas a todos

Estoy probando patrones. Estoy con el de creacion Factory Method y tengo 
un error

Tengo la siguiente estructura

IPizza <== PizzaFactory --> udemy-pddcl
+-> DeluxePizza
+-> HamAndMushroomPizza
+-> HawaiianPizza

He creado una clase virtual / interface: IPizza

#ifndef IPIZZA_H_
#define IPIZZA_H_
class IPizza {
public:
      IPizza();
      virtual ~IPizza();
      virtual int getPrice() const = 0;
};
#endif /* IPIZZA_H_ */

Esta interface es implementada por Deluxe, Hawaiian y HamMushroom Pizza, 
modificando el comportamiento en el metodo getPrice

La clase PizzaFactory crea objetos de lo mencionado anteriormente, en 
funcion al parametro enumPizzaType

class PizzaFactory {
public:
      enum enumPizzaType {
          HamMushroom,
          Deluxe,
          Hawaiian
      };
      static unique_ptr<IPizza> createPizza(enumPizzaType ept) ;
};

Pero cuando se invoca a la creacion del tipo de pizza, la linea del cout 
que esta comentada, arroja un error del tipo "Segmentation fault (core 
dumped)"

void creFactMeth_Pizza(PizzaFactory::enumPizzaType  ept)
{
      unique_ptr<IPizza> pizza;    // defino el objeto pizza
      pizza = PizzaFactory::createPizza(ept); // dependiendo de 
parametro ept creo el tipo de piza

      cout << "Price of " << ept ;    ok
      //cout << " is " << pizza->getPrice();<<-- Error
      cout << std::endl;
}

Agradecere mucho si alguien me puede ayudar.

Uso Eclipse y CLion sobre linux. Adjunto fuentes


Att

Jesse


------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: udemy-pddcl-src.zip
Type: application/zip
Size: 4210 bytes
Desc: no disponible
URL: <http://mail.listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20200525/88f7a37d/attachment.zip>


Más información sobre la lista de distribución Cconclase