[C con Clase] Error ejecucion - Patron Factory Method

Programacion Matematica progmath13 en gmail.com
Lun Jun 1 13:36:50 CEST 2020


Pero en que parte está la implementación de la función que crea la pizza,
solo alcancé a ver el prototipo en la clase.

El lun., 25 de may. de 2020 11:02 AM, Davidson, Steven <srd4121 en njit.edu>
escribió:

> 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
>>
>> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
>
> http://mail.listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20200601/284fb70f/attachment.html>


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