Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: matver en 10 Febrero 2018, 17:16 pm



Título: Ayuda problema poo
Publicado por: matver en 10 Febrero 2018, 17:16 pm
Un producto tiene dos precios unos mayor y uno menor el precio menor es + 15% y el precio mayor es +25 %.Con el siguiente algoritmo solo estoy calculando los porcentajes ( y esta mal). Si le quito la linea 35 en adelante el programa puede calcular el porcentaje menor pero no funciona con el mayor.
Código
  1. #include <iostream>
  2. using namespace std;
  3. class Articulo{
  4.    public:
  5.      virtual float getCosto()=0;
  6.      void setBase1(float b1){
  7.            Base1= b1;
  8.    }
  9.    void setBase2(float b2){
  10.           Base2=b2;
  11.    }
  12.    protected:
  13.      float Base1;
  14.      float Base2;
  15.  };
  16.  
  17. class Menor: public Articulo{
  18.     public:
  19.       float getCosto(){
  20.         return (Base1 * 15) /100;
  21.        }
  22.      };
  23. class Mayor: public Articulo{
  24.    float getCosto(){
  25.     return (Base2 * 25) /100;
  26. }
  27. };
  28.  
  29. int main (void){
  30. Menor PreM;
  31. Mayor PreMay;
  32. PreM.setBase1(80);
  33. cout<<"El precio menor es:"<<PreM.getCosto()<<endl;
  34.  
  35. PreMay.setBase2(50);
  36. cout<<"El precio mayor es:"<<PreMay.getCosto()<<endl;
  37. return 0;
  38. }
  39.  
  40.  

 In function ‘int main()’:
articulo.cpp:24:11: error: ‘virtual float Mayor::getCosto()’ is private
     float getCosto(){
           ^
articulo.cpp:36:46: error: within this context
 cout<<"El precio mayor es:"<<PreMay.getCosto()<<endl;


Título: Re: Ayuda problema poo
Publicado por: ivancea96 en 10 Febrero 2018, 18:14 pm
Bueno, como dice, en Mayor, getCosto es private. No has puesto public. (Mira cómo está Menor)