[C con Clase] Error ejecucion - Patron Factory Method

jesse jessesazo en yahoo.com
Mar Mayo 26 19:43:32 CEST 2020


Gracias Steven

Pero no funciona, a lo mejor es algo que tengo que modificar en el Eclipse

El mensaje de error es el siguiente

$ ./udemy-pdd
Segmentation fault (core dumped)

Y el error ocurre justo en el cout de pizza->getPrice();

void pizza_information(PizzaFactory::enumPizzaType  ept)
{
     unique_ptr<IPizza> pizza = PizzaFactory::createPizza(ept);

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

Gracias, again, por tu ayuda

Jesse

On 25/5/20 18:59, Davidson, Steven wrote:
> 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 
> <mailto: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/20200526/edf77e27/attachment.html>


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