[C con Clase] Error ejecucion - Patron Factory Method

Davidson, Steven srd4121 en njit.edu
Lun Mayo 25 18:59:03 CEST 2020


Hola Jesse,

Creé mi propio código de ejemplo para probar el código presentado. No tuve
muchos problemas. Luego, usé sus códigos fuente sin problemas. Intente
recompilar todo el proyecto y si lo está haciendo para la versión de
depuración (debug), cambie a la versión de lanzamiento (release).

Espero que esto ayude.

Steven


On Mon, May 25, 2020 at 10:26 AM jesse <jessesazo en yahoo.com> wrote:

> 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 ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20200525/b759c410/attachment.html>


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