DEBUG102 This program demonstrates inheritance A SaleItem cl

//DEBUG10-2
//This program demonstrates inheritance
//A SaleItem class is derived from an Item class
#include<iostream>
#include<string>
using namespace std;
class Item
{
   protected::
      int idNum,
      int quantity,
   public:
       void setData(int, int);
       void showItem();
};
void Item::setData(int id, int amt)
{
     idNum == id;
     quantity == amt;
}
void Item::showItem()
{
   cout << \"#\" << idNum << \"    Quantity \" << quantity << endl;
}
class SaleItem : public Item
{
private:
     double itemPrice;
public:
     void setData(int, int, double);
     void showSaleItem();
};
void SaleItem::settData(int id, int amt, double price)
{
   Item.setdata(id,amt);
   itemPrice = price;
}
void SaleItem::showSaleItem()
{
   cout << \"SaleItem ID #\" << idNum;
   cout << \" Price $\" << itemPrice << endl;
   showItem();
}
int main()
{
   Item thing;
   thing.setData(870, 100);
   cout << endl << \"Item...\" << endl;
   thing.showItem();
   SaleItem saleThing;
   saleThing.setData(888, 200, 3.88);
   cout << endl << endl << \"SaleItem...\" < endl;
   saleThing.showSaleItem();
   return 0;
}

Solution

There is a danger when:
1. the method is overridden
2. the method calls other methods that are overridden

#include<iostream>
#include<string>
using namespace std;
class Item
{
protected:
   int idNum;
   int quantity;
public:
   void setData(int, int);
   void showItem();

};
void Item::setData(int id, int amt)
{
   idNum = id;
   quantity = amt;
}
void Item::showItem()
{
   cout << \"Id \\t\" << idNum << \"\\t Quantity \\t\" << quantity << endl;
}
class SaleItem : public Item
{
private:
   double itemPrice;
   int idNum;
   int quantity;
public:
   virtual void setData(int, int, double);
   void showSaleItem();
};
void SaleItem::setData(int id, int amt, double price)
{
   /*int id,amt;*/
   //Item.setdata(id,amt);
   itemPrice = price;
   idNum = id;
   quantity = amt;
}
void SaleItem::showSaleItem()
{
   cout << \"SaleItem ID #\" << idNum;
   cout << \" Price $\" << itemPrice << endl;
   /*showItem();*/
   cout << \"Id \\t\" << idNum << \"\\t Quantity \\t\" << quantity << endl;
}
int main()
{
   Item thing;
   thing.setData(870, 100);
   cout << endl << \"Item...\" << endl;
   thing.showItem();
   SaleItem saleThing;
   saleThing.setData(888, 200, 3.88);
   cout << \"\ \ SaleItem...\" << endl;
   saleThing.showSaleItem();
   return 0;
}

//DEBUG10-2 //This program demonstrates inheritance //A SaleItem class is derived from an Item class #include<iostream> #include<string> using names
//DEBUG10-2 //This program demonstrates inheritance //A SaleItem class is derived from an Item class #include<iostream> #include<string> using names

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site