일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 무료 동영상 강의
- 표준 입출력
- 독립기념관
- 언제나 휴일
- 소스 코드
- c언어
- c#
- 유튜브 동영상 강의
- 충남 천안
- Windows Forms
- 졸업 작품 소재
- 파이썬
- 표준 라이브러리 함수
- 클래스 다이어그램
- 동영상
- 알고리즘
- 동영상 강의
- 추천
- 안드로이드 앱 개발
- C++
- 강의
- 원격 제어 프로그램
- 산책하기 좋은 곳
- 언제나휴일
- 프로젝트
- 실습으로 다지는 c#
- 캡슐화
- 소켓 통신
- 네트워크 프로그래밍
- 실습
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
상품과 할인 상품 – 상속 실습 [C++] 본문
안녕하세요. 언제나 휴일에 언휴예요.
이번에는 상속 실습을 해 볼 거예요.
실습 소재는 상품과 할인 상품 클래스를 정의합니다.
클래스 다이어그램에서 삼각형과 실선으로 표현하는 관계를 일반화 관계라고 불러요.
일반화 관계는 기반 형식(Product)과 파생 형식(Discount Product) 사이의 관계입니다.
일반화 관계에서 파생 형식은 기반 형식의 멤버를 상속받는 특징을 갖습니다.
/* https://ehpub.co.kr
C++ 예제 - 언제나 휴일
상속 실습 - 상품과 할인 상품 클래스 정의하기
*/
#include
#include
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++ 예제 및 소스' 카테고리의 다른 글
[C언어 소스] 문자열 길이를 계산하는 함수 만들기 (0) | 2025.01.08 |
---|---|
Queue를 이용한 스케쥴러 시뮬레이션 [C++] (0) | 2025.01.08 |
파서 트리를 이용한 계산기 [C++] (0) | 2025.01.08 |
함수 개체, 회원 및 회원 컬렉션 구현[C++] (0) | 2025.01.08 |
개체 출력자 실습 – 회원 클래스 및 쉬프트 연산자 중복 정의 [C++] (0) | 2025.01.08 |
다형성 실습 – 오케스트라, 음악가, 피아니스트, 드러머 [C++] (0) | 2025.01.08 |
회원 클래스 정의 – 정적 멤버 캡슐화 [C++] (0) | 2025.01.08 |
복소수 클래스 정의 – 캡슐화 실습 [C++] (0) | 2025.01.08 |