[ C++ ] 상속의 개념 | 상속 예제

2021. 5. 18. 21:47·Archive/Develop
728x90
반응형

C++ 에서 상속이란?

 

클래스 사이에서의 상속관계를 정의하는 것이다.

 

기본 클래스의 속성과 기능을 파생 클래스에 물려주는 것이다.

 

+ 기본 클래스 -> 상속해주는 클래스. 부모 클래스

+ 파생 클래스 -> 상속받는 클래스. 자식 클래스

 

 

클래스를 상속하게 되면 얻는 이점

 

1. 클래스 간결하게 작성

 

2. 클래스 간의 계층적 분류 및 관리 용이

 

 

 

상속관계의 생성자와 소멸자 실행

 

 

질문 1:

 

파생 클래스의 객체가 새엇ㅇ될 때 파생 클래스의 생성자와 기본 클래스의 생성자가 모두 실행되나요?

 

답 1:

 

네 둘 다 실행됩니다.

 

 

질문 2:

 

파생 클래스의 생성자와 기본 클래스 생성자 중 어떤 생성자가 먼저 실행되나요?

 

답 2:

 

기본 클래스의 생성자가 먼저 실행됩니다.

 

 

 

#include <iostream>
using namespace std;
class TV {
int channel;
public:
    TV(int channel) { this->channel = channel; }
    TV() {}
    void on() { cout << channel << " On" << endl; }
    void off() { cout << " Off" << endl; }
    ~TV() { cout << "TV 소멸자" << endl; }
    int getChannel() { return channel; }
};
class ColorTV :public TV {
protected:   string color;
public:
    ColorTV(int channel, string color) :TV(channel) { this->color = color; }
    ColorTV() {}
    void show() { cout << color << "색 보여라" << endl; }
    ~ColorTV() { cout << "color TV 소멸" << endl; }
};
class SmartTv : public ColorTV {
    int price;
public:
    SmartTv() {}
    SmartTv(int channel, string color, int price) :ColorTV(channel, color) { this->price = price; }
    void replay() {
        cout << color << "색 채널번호 " << getChannel() << ", 가격 " << price
            << "원 입니다." << endl;
    }
};
class WideTV : public ColorTV {
private:
    int size;
public:
    WideTV(string color, int channel, int size);
    void play();
};
WideTV::WideTV(string color, int channel, int size) :ColorTV(channel, color) {
    this->size = size;

}
void WideTV::play() {
    cout << color << "색" << getChannel() << "번" << size << "인치" << endl;
}

int main() {
    TV t(7);
    t.on(); t.off();
    ColorTV ct(9, "RED");
    SmartTv sm(12, "Blue", 2500000);
    sm.replay();
    ct.show();
    ct.on();

    WideTV wt("Yello", 11, 60);
    wt.play();
}

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ C# ] C# 을 혼자서 익혀보자! (C# 독학 도전기) | C# 강의 링크 모음  (0) 2021.05.27
[ C++ ] 가상함수와 추상클래스  (0) 2021.05.26
[ C++ ] 프렌드함수 || 연산자 중복 || 프렌드함수 예제, 연산자 중복 예제  (0) 2021.05.11
[ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법)  (0) 2021.05.10
[ C++ ] 함수 중복(Function Overloading)  (0) 2021.05.04
'Archive/Develop' 카테고리의 다른 글
  • [ C# ] C# 을 혼자서 익혀보자! (C# 독학 도전기) | C# 강의 링크 모음
  • [ C++ ] 가상함수와 추상클래스
  • [ C++ ] 프렌드함수 || 연산자 중복 || 프렌드함수 예제, 연산자 중복 예제
  • [ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법)
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    C++
    파이썬 기초
    Git
    오라클
    Django
    자바스크립트 객체
    Python
    비박스
    파이썬 백준
    백준
    파이썬 기초 문제
    javascript
    oracle db
    Codeup
    장고
    코드업 기초
    카카오 100일 프로젝트
    docker
    코드업
    백준 풀이
    파이썬 알고리즘
    자바스크립트
    파이썬 문제
    백준 문제풀이
    코드업 파이썬 기초 100제
    자바스크립트 API
    백준 파이썬
    Oracle
    파이썬
    보안뉴스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ C++ ] 상속의 개념 | 상속 예제
상단으로

티스토리툴바