//DEBUG10-2 //This program demonstrates inheritance //A SaleItem class is derive
ID: 3780165 • Letter: #
Question
//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;
}
Explanation / Answer
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 " << idNum << " Quantity " << 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 " << idNum << " Quantity " << 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;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.