반응형
/* https://ehpub.co.kr
C++ 예제 - 언제나 휴일
상속 실습 - 상품과 할인 상품 클래스 정의하기
*/
#include <string>
#include <iostream>
using namespace std;
class Product
{
string name;
int price;
public:
Product(string name, int price)
{
SetName(name);
SetPrice(price);
}
virtual int GetPrice()const
{
return price;
}
string GetName()const
{
return name;
}
virtual void Print()const
{
cout << name << " 판매 가격:" << GetPrice() << endl;
}
private:
void SetPrice(int price)
{
this->price = price;
}
void SetName(string name)
{
this-> name = name;
}
};
class DiscountProduct :public Product
{
int discount;
public:
DiscountProduct(string name, int price, int discount):Product(name,price)
{
SetDiscount(discount);
}
int GetDiscount()const
{
return discount;
}
virtual int GetPrice()const
{
int origin_price = Product::GetPrice();
int dc = origin_price * discount / 100;
return origin_price - dc;
}
virtual void Print()const
{
cout << "상품 가격:" << Product::GetPrice() << " 할인율:" << discount << " ";
Product::Print();
}
private:
void SetDiscount(int discount)
{
this->discount = discount;
}
};
int main()
{
Product* p1 = new Product("치약", 3000);
Product* p2 = new DiscountProduct("칫솔", 3000, 15);
p1->Print();
p2->Print();
delete p1;
delete p2;
return 0;
}
반응형
'C++ > C++ 예제' 카테고리의 다른 글
함수 개체, 회원 및 회원 컬렉션 구현[C++] (0) | 2020.07.24 |
---|---|
개체 출력자 실습 – 회원 클래스 및 쉬프트 연산자 중복 정의 [C++] (0) | 2020.07.22 |
다형성 실습 – 오케스트라, 음악가, 피아니스트, 드러머 [C++] (0) | 2020.07.21 |
회원 클래스 정의 – 정적 멤버 캡슐화 [C++] (0) | 2020.07.15 |
복소수 클래스 정의 – 캡슐화 실습 [C++] (0) | 2020.07.14 |